Python

Как да използвам PyQt QTableWidget

Как да използвам PyQt QTableWidget
Таблица се използва за показване на данни в структуриран формат, според редове и колони. The QTableWidget клас на PyQt може да се използва в Python за показване на данни в таблична форма за задачи, свързани с изследвания или анализ на данни. Съдържанието на таблицата може да се генерира от различни видове съхранение, като двуизмерни списъци или таблици, таблици на база данни, JSON файлове и т.н.  Една или повече таблици могат да бъдат създадени с помощта на QTableWidget в приложението PyQt. Този урок показва как да се използва QTableWidget за създаване на различни видове таблици с помощта на Python скрипт.

Необходими методи

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 ()

Следващият прозорец с таблицата ще се появи след изпълнението на горния скрипт.

Заключение

Този урок ви показа как да създавате таблици с фиксирани данни, речникови данни и списъчни данни, използвайки два примера. Таблиците могат да се създават и с динамични данни, като се използват таблици на база данни или други източници на данни.

Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...
Емулирайте кликванията на мишката, като задържите курсора на мишката с кликаща мишка в Windows 10
Използването на мишка или клавиатура в неправилна поза при прекомерна употреба може да доведе до много здравословни проблеми, включително напрежение, ...
Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...