Python

Как использовать PyQt QTableWidget

Как использовать PyQt QTableWidget
Таблица используется для отображения данных в структурированном формате по строкам и столбцам. В QTableWidget класс PyQt может использоваться в Python для отображения данных в табличной форме для задач, связанных с исследованиями или анализом данных. Содержимое таблицы может быть сгенерировано из различных типов хранилищ, таких как двумерные списки или таблицы, таблицы базы данных, файлы JSON и т. Д.  Одна или несколько таблиц могут быть созданы с помощью QTableWidget в приложении PyQt. В этом руководстве показано, как использовать QTableWidget для создания различных типов таблиц с помощью скрипта Python.

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

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

Следующее окно с таблицей появится после выполнения вышеуказанного скрипта.

Заключение

В этом руководстве показано, как создавать таблицы с фиксированными данными, данными словаря и данными списка на двух примерах. Таблицы также могут быть созданы с динамическими данными с использованием таблиц базы данных или других источников данных.

Лучшие эмуляторы игровой консоли для Linux
В этой статье будет перечислено популярное программное обеспечение для эмуляции игровых консолей, доступное для Linux. Эмуляция - это уровень совмести...
Лучшие дистрибутивы Linux для игр в 2021 году
Операционная система Linux прошла долгий путь от своего первоначального простого серверного вида. Эта ОС значительно улучшилась за последние годы и те...
Как записать и транслировать игровую сессию в Linux
В прошлом игры считались только хобби, но со временем игровая индустрия увидела огромный рост с точки зрения технологий и количества игроков. Игровая ...