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 diperlukanimport 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 diperlukanimport 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.