Необходимые методы
В QTableWidget класс включает в себя множество методов для выполнения задач, связанных с созданием таблиц. Некоторые из наиболее часто используемых методов этого класса объясняются ниже:
Название метода | Цель |
---|---|
setRowCount () | Используется для определения количества строк. |
setColumnCount () | Используется для определения количества столбцов. |
setHorizontalHeaderLabels () | Используется для установки меток заголовков таблицы. |
setItem () | Используется для установки значения ячейки таблицы. |
resizeColumnsToContents () | Используется для изменения размера столбцов таблицы в зависимости от содержимого. |
resizeRowsToContents () | Используется для изменения размера строк таблицы в зависимости от содержимого. |
setMinimumWidth () | Используется для установки минимальной ширины таблицы. |
setMinimumHeight () | Используется для установки минимальной высоты стола. |
показывать() | Используется для отображения таблицы. |
Использование QTableWidget
В следующих разделах представлены простые примеры, объясняющие, как создать таблицу в приложении PyQt, используя статические данные и данные списка.
Пример 1: Создание простой таблицы с использованием статических данных
Следующий скрипт создает таблицу статических данных с пятью строками и четырьмя столбцами, используя QTableWidget класс. Два для циклы со значениями диапазона были использованы в скрипте для добавления статических данных в ячейки таблицы. Позиции строк и столбцов каждой ячейки были добавлены как содержимое каждой ячейки. В QDesktopWidget используется в скрипте для отображения окна с таблицей в центре экрана.
# Импортировать необходимые библиотекиimport sys
из PyQt5.QtWidgets импортируют QApplication, QMainWindow, QTableWidget, QTableWidgetItem, QDesktopWidget
из PyQt5.QtCore import QSize
# Определить класс для создания таблицы со статическими данными
класс SimpleTable (QMainWindow):
def __init __ (сам):
# Вызвать родительский конструктор
супер().__в этом__()
# Установить размер и заголовок окна
себя.setMinimumSize (QSize (420, 150))
себя.setWindowTitle («Простая таблица со статическими данными»)
# Создаем таблицу с необходимыми свойствами
table = QTableWidget (сам)
Таблица.setColumnCount (4)
Таблица.setRowCount (5)
Таблица.setMinimumWidth (500)
Таблица.setMinimumHeight (500)
# Установить заголовки таблицы
Таблица.setHorizontalHeaderLabels ([«Заголовок-1», «Заголовок-2», «Заголовок-3», «Заголовок-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 для определения идентификаторов студентов. Ключевые значения словаря добавляются в заголовок таблицы, значения списка добавляются в первый столбец таблицы, а значения словаря добавляются в другие столбцы таблицы.
# Импортировать необходимые модулиimport sys
из PyQt5.QtWidgets импортируют QApplication, QTableWidget, QTableWidgetItem, QDesktopWidget
# Объявить словарную переменную с пометками
mark = '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 __ (self, data, * args):
# Вызвать родительский конструктор
QTableWidget.__init __ (себя, * аргументы)
# Объявить список студенческих удостоверений личности
себя.ID_list = ['0189945', '0154590', '0196734', '0185611', '0178956']
# Установить необходимые конфигурации для таблицы
себя.данные = данные
себя.resizeColumnsToContents ()
себя.resizeRowsToContents ()
себя.setColumnWidth (0, 100)
для i в диапазоне (4):
себя.setColumnWidth (я, 80)
себя.setMinimumWidth (400)
себя.setWindowTitle ("Лист отметок")
# Объявить переменную для установки содержимого заголовка
заголовки = []
заголовки.добавить (")
# цикл для чтения ключей словаря
для n введите enumerate (sorted (self.данные.ключи ())):
заголовки.добавить (ключ)
# цикл для чтения значений словаря
для m, элемент в enumerate (self.данные [ключ]):
ID = QTableWidgetItem (self.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»)
# Прочитать конкретное значение ячейки
себя.щелкнул.подключиться (самостоятельно.по щелчку)
# Отобразить окно по центру экрана
победа = себя.frameGeometry ()
pos = QDesktopWidget ().availableGeometry ().центр()
выиграть.moveCenter (поз.)
себя.двигаться (выиграть.верхний левый())
себя.показывать()
def on_click (сам):
для ItemVal в себе.selectedItems ():
# Прочитать значение заголовка на основе выбранной ячейки
subject = я.horizontalHeaderItem (ItemVal.столбец()).текст()
# Распечатать подробную информацию о марке
print ("\ n", self.ID_list [ItemVal.row ()], "получил", ItemVal.текст (), "в", тема)
# Создать объект приложения и запустить приложение
app = QApplication (sys.argv)
table = TableFromList (баллы, 5, 5)
Таблица.показывать()
приложение.exec ()
Следующее окно с таблицей появится после выполнения вышеуказанного скрипта.
Заключение
В этом руководстве показано, как создавать таблицы с фиксированными данными, данными словаря и данными списка на двух примерах. Таблицы также могут быть созданы с динамическими данными с использованием таблиц базы данных или других источников данных.