Python

Cara Menggunakan PyQt QTableWidget

Cara Menggunakan PyQt QTableWidget
Jadual digunakan untuk menampilkan data dalam format terstruktur, sesuai dengan baris dan lajur. The QTableWidget kelas PyQt dapat digunakan di Python untuk memaparkan data dalam bentuk jadual untuk tugas-tugas yang berkaitan dengan penyelidikan atau analisis data. Kandungan jadual dapat dihasilkan dari pelbagai jenis penyimpanan, seperti senarai dua dimensi atau jadual, jadual pangkalan data, fail JSON, dll.  Satu atau lebih jadual boleh dibuat menggunakan QTableWidget dalam aplikasi PyQt. Tutorial ini menunjukkan cara menggunakan QTableWidget untuk membuat pelbagai jenis jadual menggunakan skrip Python.

Kaedah yang diperlukan

The QTableWidget kelas merangkumi banyak kaedah untuk melaksanakan tugas yang berkaitan dengan pembuatan jadual. Beberapa kaedah yang lebih biasa digunakan di kelas ini dijelaskan di bawah:

Nama Kaedah Tujuan
setRowCount () Digunakan untuk menentukan bilangan baris.
setColumnCount () Digunakan untuk menentukan bilangan lajur.
setHorizontalHeaderLabels () Digunakan untuk menetapkan label tajuk meja.
setItem () Digunakan untuk menetapkan nilai sel jadual.
ubah saizColumnsToContents () Digunakan untuk mengubah ukuran lajur jadual berdasarkan kandungan.
ubah saizRowsToContents () Digunakan untuk mengubah ukuran baris jadual berdasarkan kandungan.
setMinimumWidth () Digunakan untuk menetapkan lebar minimum meja.
setMinimumHeight () Digunakan untuk menetapkan ketinggian minimum meja.
tunjuk () Digunakan untuk memaparkan jadual.

Penggunaan QTableWidget

Bahagian berikut memberikan contoh mudah untuk menjelaskan bagaimana membuat jadual dalam aplikasi PyQt menggunakan data statik dan data senarai.

Contoh 1: Buat Jadual Mudah Menggunakan Data Statik

Skrip berikut membuat jadual data statik dengan lima baris dan empat lajur menggunakan QTableWidget kelas. Dua untuk gelung dengan nilai julat telah digunakan dalam skrip untuk menambahkan data statik ke dalam sel jadual. Kedudukan baris dan lajur setiap sel telah ditambahkan sebagai isi setiap sel. The QDesktopWidget digunakan dalam skrip untuk menampilkan tetingkap dengan meja di tengah layar.

# Import perpustakaan yang diperlukan
import sys
dari PyQt5.QtWidgets mengimport QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
dari PyQt5.QSCor import QtCore
# Tentukan kelas untuk membuat jadual dengan data statik
kelas SimpleTable (QMainWindow):
def __init __ (diri):
# Panggil pembina ibu bapa
super ().__di dalamnya__()
# Tetapkan ukuran dan tajuk tetingkap
diri.setMinimumSize (QSize (420, 150))
diri.setWindowTitle ("Jadual Mudah dengan Data Statik")
# Buat jadual dengan sifat yang diperlukan
jadual = QTableWidget (diri)
meja.setColumnCount (4)
meja.setRowCount (5)
meja.setMinimumWidth (500)
meja.setMinimumTinggi (500)
# Tetapkan tajuk jadual
meja.setHorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"]))
# Tetapkan nilai jadual
untuk i dalam jarak (5):
untuk j dalam julat (4):
meja.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Ubah saiz baris dan lajur berdasarkan kandungan
meja.ubah saizColumnsToContents ()
meja.ubah saizRowsToContents ()
# Paparkan jadual
meja.tunjuk ()
# Paparkan tetingkap di tengah-tengah skrin
menang = diri.bingkaiGeometri ()
pos = QDesktopWidget ().tersedia Geometri ().tengah ()
menang.moveCenter (pos)
diri.bergerak (menang.atas Kiri ())
diri.tunjuk ()
# Buat objek aplikasi dan jalankan aplikasi
app = QApplication (sys.berhujah)
mw = Jadual Mudah ()
mw.tunjuk ()
aplikasi.exec ()

Tetingkap berikut dengan jadual akan muncul skrip di atas dijalankan. Menurut nilai-nilai untuk gelung, nilai sel baris pertama dan lajur pertama adalah 'Row-1, Col-1,'dan nilai sel baris terakhir dan lajur terakhir adalah'Row-5, Col-4.'

Contoh 2: Buat Jadual dengan Petua Alat Menggunakan Kamus dan Data Senarai

Skrip berikut membuat jadual dengan kandungan kamus Python dan senarai menggunakan QTableWidget kelas. Skrip juga menambah teks hujung alat untuk tajuk meja. Kamus Python bernama tanda juga dinyatakan dalam skrip. Kod kursus digunakan sebagai nilai utama kamus. Senarai Python dinyatakan untuk menentukan ID pelajar. Nilai utama kamus ditambahkan ke tajuk jadual, nilai senarai ditambahkan ke lajur pertama jadual, dan nilai kamus ditambahkan ke lajur lain dari jadual.

# Import modul yang diperlukan
import sys
dari PyQt5.QtWidgets mengimport QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Menyatakan pembolehubah kamus dengan tanda
markah = 'CSE-401': [78, 93, 67, 88, 78],
'CSE-404': [90, 59, 82, 73, 89],
'CSE-406': [81, 80, 74, 83, 67],
'CSE-407': [81, 80, 98, 83, 72]
TableFromList kelas (QTableWidget):
def __init __ (diri, data, * args):
# Panggil pembina ibu bapa
QTableWidget.__init __ (diri, * argumen)
# Nyatakan senarai ID pelajar
diri.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Tetapkan konfigurasi yang diperlukan untuk jadual
diri.data = data
diri.ubah saizColumnsToContents ()
diri.ubah saizRowsToContents ()
diri.setColumnWidth (0, 100)
untuk i dalam jarak (4):
diri.setColumnWidth (i, 80)
diri.setMinimumWidth (400)
diri.setWindowTitle ("Mark Sheet")
# Menyatakan pemboleh ubah untuk menetapkan kandungan tajuk
pengepala = []
tajuk.tambahkan (")
# untuk gelung untuk membaca kunci kamus
untuk n, masukkan bilangan (disusun (diri sendiri).data.kunci ())):
tajuk.tambahkan (kunci)
# untuk gelung untuk membaca nilai-nilai kamus
untuk m, item dalam bilangan (diri).data [kunci]):
ID = QTableWidgetItem (diri.ID_daftar [m])
diri.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (item))
diri.setItem (m, n + 1, newVal)
# Tetapkan label tajuk jadual
diri.setHorizontalHeaderLabels (tajuk)
# Tetapkan petua alat untuk tajuk
diri.ItemHeader mendatar (1).setToolTip ("Multimedia")
diri.ItemHeader mendatar (2).setToolTip ("Artificial Intelligent")
diri.ItemHeader mendatar (3).setToolTip ("Pangkalan Data Lanjutan")
diri.ItemHeader mendatar (4).setToolTip ("Pengaturcaraan Unix")
# Baca nilai sel tertentu
diri.diklik.menyambung (diri.di_klik)
# Paparkan tetingkap di tengah-tengah skrin
menang = diri.bingkaiGeometri ()
pos = QDesktopWidget ().tersedia Geometri ().tengah ()
menang.moveCenter (pos)
diri.bergerak (menang.atas Kiri ())
diri.tunjuk ()
def on_click (diri):
untuk ItemVal dalam diri.Item terpilih ():
# Baca nilai tajuk berdasarkan sel yang dipilih
subjek = diri.horizontalHeaderItem (ItemVal.kolum()).teks ()
# Cetak maklumat terperinci tanda
cetak ("\ n", diri sendiri.ID_list [ItemVal.baris ()], "mendapat", ItemVal.teks (), "dalam", subjek)
# Buat objek aplikasi dan jalankan aplikasi
app = QApplication (sys.berhujah)
table = TableFromList (markah, 5, 5)
meja.tunjuk ()
aplikasi.exec ()

Tetingkap berikut dengan jadual akan muncul setelah skrip di atas dijalankan.

Kesimpulannya

Tutorial ini menunjukkan kepada anda cara membuat jadual dengan data tetap, data kamus, dan daftar data menggunakan dua contoh. Jadual juga dapat dibuat dengan data dinamis menggunakan jadual pangkalan data atau sumber data lain.

Pasang Dolphin Emulator terkini untuk Gamecube & Wii di Linux
Dolphin Emulator membolehkan anda memainkan permainan Gamecube & Wii pilihan anda di Komputer Peribadi Linux (PC). Menjadi emulator permainan sumber ...
Cara Menggunakan Mesin Cheat GameConqueror di Linux
Artikel ini merangkumi panduan mengenai penggunaan mesin cheat GameConqueror di Linux. Ramai pengguna yang bermain permainan di Windows sering menggun...
Emulator Konsol Permainan Terbaik untuk Linux
Artikel ini akan menyenaraikan perisian emulasi konsol permainan popular yang tersedia untuk Linux. Emulation adalah lapisan keserasian perisian yang ...