Необходими методи
The QTableWidget class включва много методи за изпълнение на задачи, свързани със създаването на таблици. Някои от най-често използваните методи от този клас са обяснени по-долу:
Име на метода | Предназначение |
---|---|
setRowCount () | Използва се за определяне на броя на редовете. |
setColumnCount () | Използва се за определяне на броя на колоните. |
setHorizontalHeaderLabels () | Използва се за задаване на заглавните етикети на таблицата. |
setItem () | Използва се за задаване на стойността на клетката на таблицата. |
resizeColumnsToContents () | Използва се за преоразмеряване на колоните на таблицата въз основа на съдържанието. |
resizeRowsToContents () | Използва се за преоразмеряване на редовете на таблицата въз основа на съдържанието. |
setMinimumWidth () | Използва се за задаване на минималната ширина на таблицата. |
setMinimumHeight () | Използва се за задаване на минималната височина на масата. |
покажи () | Използва се за показване на таблицата. |
Използване на QTableWidget
Следващите раздели предоставят прости примери, за да обяснят как да създадете таблица в приложението PyQt, използвайки статични данни и списъчни данни.
Пример 1: Създайте проста таблица, използвайки статични данни
Следният скрипт създава таблица със статични данни с пет реда и четири колони с помощта на QTableWidget клас. Две за цикли със стойности на обхвата са използвани в скрипта за добавяне на статичните данни в клетките на таблицата. Позициите на реда и колоните на всяка клетка са добавени като съдържание на всяка клетка. The QDesktopWidget се използва в скрипта за показване на прозореца с таблицата в центъра на екрана.
# Импортирайте необходимите библиотекиимпортиране на sys
от PyQt5.QtWidgets импортират QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
от PyQt5.QtCore импортиране QSize
# Определете клас за създаване на таблицата със статични данни
клас SimpleTable (QMainWindow):
def __init __ (самостоятелно):
# Извикайте родителския конструктор
супер ().__в него__()
# Задайте размера и заглавието на прозореца
себе си.setMinimumSize (QSize (420, 150))
себе си.setWindowTitle ("Проста таблица със статични данни")
# Създайте таблицата с необходимите свойства
таблица = QTableWidget (самостоятелно)
маса.setColumnCount (4)
маса.setRowCount (5)
маса.setMinimumWidth (500)
маса.setMinimumHeight (500)
# Задайте заглавията на таблицата
маса.setHorizontalHeaderLabels (["Header-1", "Header-2", "Header-3", "Header-4"])
# Задайте стойностите на таблицата
за i в обхват (5):
за j в обхват (4):
маса.setItem (i, j, QTableWidgetItem ("Row-" + str (i + 1) + ", Col-" + str (j + 1)))
# Преоразмеряване на редовете и колоните въз основа на съдържанието
маса.resizeColumnsToContents ()
маса.resizeRowsToContents ()
# Показване на таблицата
маса.покажи ()
# Показвайте прозореца в центъра на екрана
победа = себе си.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().център ()
печеля.moveCenter (поз)
себе си.ход (победа.горе вляво())
себе си.покажи ()
# Създайте обект на приложение и изпълнете приложението
app = QApplication (sys.argv)
mw = SimpleTable ()
mw.покажи ()
ап.exec ()
Следващият прозорец с таблица ще се появи, горният скрипт е изпълнен. Според стойностите на за цикли, стойността на клетката на първия ред и първата колона е 'Ред-1, Кол-1,"и стойността на клетката на последния ред и последната колона е"Ред-5, Кол-4.'
Пример 2: Създаване на таблица с подсказка с помощта на речник и данни от списъка
Следният скрипт създава таблица със съдържанието на речник на Python и списък с помощта на QTableWidget клас. Скриптът също така добавя текст на подсказка за заглавката на таблицата. Речник на Python на име марки също е деклариран в скрипта. Кодовете на курсовете се използват като ключови стойности на речника. Декларира се списък на Python, за да се дефинират студентските идентификатори. Ключовите стойности на речника се добавят към заглавката на таблицата, стойностите на списъка се добавят към първата колона на таблицата, а стойностите на речника се добавят към останалите колони на таблицата.
# Импортирайте необходимите модулиимпортиране на sys
от PyQt5.QtWidgets импортират QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Декларирайте променлива в речника с марки
марки = '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 (QTableWidget):
def __init __ (самостоятелно, данни, * аргументи):
# Извикване на родителски конструктор
QTableWidget.__init __ (самостоятелно, * аргументи)
# Декларирайте списък на студентските IDS
себе си.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Задайте необходимите конфигурации за таблицата
себе си.данни = данни
себе си.resizeColumnsToContents ()
себе си.resizeRowsToContents ()
себе си.setColumnWidth (0, 100)
за i в обхват (4):
себе си.setColumnWidth (i, 80)
себе си.setMinimumWidth (400)
себе си.setWindowTitle ("Маркиране на лист")
# Декларирайте променливата, за да зададете съдържанието на заглавката
заглавки = []
хедъри.добави (")
# за цикъл за четене на ключовете на речника
за n, ключ в enumerate (сортирано (самостоятелно.данни.бутони ())):
хедъри.добавяне (ключ)
# за цикъл за четене на стойностите на речника
за m, елемент в изброяване (самостоятелно.данни [ключ]):
ID = QTableWidgetItem (самостоятелно.ID_list [m])
себе си.setItem (m, 0, ID)
newVal = QTableWidgetItem (str (елемент))
себе си.setItem (m, n + 1, newVal)
# Задайте заглавния етикет на таблицата
себе си.setHorizontalHeaderLabels (заглавки)
# Задайте подсказките за заглавките
себе си.horizontalHeaderItem (1).setToolTip ("Мултимедия")
себе си.horizontalHeaderItem (2).setToolTip ("Изкуствен интелигентен")
себе си.horizontalHeaderItem (3).setToolTip ("Разширена база данни")
себе си.horizontalHeaderItem (4).setToolTip ("Програмиране на Unix")
# Прочетете конкретната стойност на клетката
себе си.щракна.свързване (самостоятелно.on_click)
# Показвайте прозореца в центъра на екрана
победа = себе си.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().център ()
печеля.moveCenter (поз)
себе си.ход (победа.горе вляво())
себе си.покажи ()
def on_click (самостоятелно):
за ItemVal в себе си.selectedItems ():
# Прочетете стойността на заглавката въз основа на избраната клетка
субект = себе си.horizontalHeaderItem (ItemVal.колона()).текст()
# Отпечатайте подробната информация за марката
print ("\ n", самостоятелно.ID_list [ItemVal.row ()], „got“, ItemVal.text (), "in", subject)
# Създайте обект на приложение и изпълнете приложението
app = QApplication (sys.argv)
table = TableFromList (марки, 5, 5)
маса.покажи ()
ап.exec ()
Следващият прозорец с таблицата ще се появи след изпълнението на горния скрипт.
Заключение
Този урок ви показа как да създавате таблици с фиксирани данни, речникови данни и списъчни данни, използвайки два примера. Таблиците могат да се създават и с динамични данни, като се използват таблици на база данни или други източници на данни.