PyQt5 – QTableWidget

接下来我会为你详细讲解Python的PyQt5模块中的QTableWidget控件的完整使用攻略。

简介

QTableWidget是PyQt5中的一个常用控件,它可以用于显示数据表格,支持多行多列数据的展示。与QTableView相比,QTableWidget更加简单易用,不需要额外的代理模型,支持直接插入数据。

基本用法

创建QTableWidget

import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem

# 创建应用对象
app = QApplication(sys.argv)
# 创建QTableWidget对象
table = QTableWidget()
# 显示窗口
table.show()
# 执行应用
sys.exit(app.exec_())

以上示例中,我们首先导入了QApplicationQTableWidgetQTableWidgetItem模块,并创建了一个应用对象app和一个表格对象table。我们在创建表格对象时并没有指定维度和大小,这是在后面设置的。随后,通过show()方法显示窗口,并通过app.exec_()方法开启应用运行。

设置表格的行数、列数和大小

import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem

# 创建应用对象
app = QApplication(sys.argv)
# 创建QTableWidget对象
table = QTableWidget()
# 设置表格的行数、列数和大小
table.setColumnCount(3)
table.setRowCount(2)
table.setFixedSize(300, 200)

# 显示窗口
table.show()
# 执行应用
sys.exit(app.exec_())

在以上示例中,我们在创建表格对象table后,使用setColumnCountsetRowCount可以分别设置表格的列数和行数。接下来,通过setFixedSize方法设置表格的大小为300*200。在设置完相关属性后,将表格通过show()方法显示在窗口中。

向表格中添加数据

import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem

# 创建应用对象
app = QApplication(sys.argv)
# 创建QTableWidget对象
table = QTableWidget()
# 设置表格的行数、列数和大小
table.setColumnCount(3)
table.setRowCount(2)
table.setFixedSize(300, 200)

# 向表格中添加数据
table.setItem(0, 0, QTableWidgetItem('1'))
table.setItem(0, 1, QTableWidgetItem('2'))
table.setItem(0, 2, QTableWidgetItem('3'))
table.setItem(1, 0, QTableWidgetItem('4'))
table.setItem(1, 1, QTableWidgetItem('5'))
table.setItem(1, 2, QTableWidgetItem('6'))

# 显示窗口
table.show()
# 执行应用
sys.exit(app.exec_())

以上示例中,我们在设置完表格的行数、列数和大小后,通过setItem方法向表格中逐一添加数据。其中setItem(row, column, item)第一个参数为表格的行数,第二个参数为表格的列数,第三个参数为添加到表格中的数据项,这个数据项可以是普通文本或是其他控件。

获取表格中的数据

import sys
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem

# 创建应用对象
app = QApplication(sys.argv)
# 创建QTableWidget对象
table = QTableWidget()
# 设置表格的行数、列数和大小
table.setColumnCount(3)
table.setRowCount(2)
table.setFixedSize(300, 200)

# 向表格中添加数据
table.setItem(0, 0, QTableWidgetItem('1'))
table.setItem(0, 1, QTableWidgetItem('2'))
table.setItem(0, 2, QTableWidgetItem('3'))
table.setItem(1, 0, QTableWidgetItem('4'))
table.setItem(1, 1, QTableWidgetItem('5'))
table.setItem(1, 2, QTableWidgetItem('6'))

# 获取表格中的数据并打印输出
for row in range(table.rowCount()):
    for column in range(table.columnCount()):
        item = table.item(row, column)
        print(item.text())

# 显示窗口
table.show()
# 执行应用
sys.exit(app.exec_())

在以上示例中,我们在向表格中逐一添加数据之后,使用item方法获取表格中的数据,通过text()方法获取数据项中的内容,并将其打印输出。

示例一:使用QTableWidget展示数据库中的数据

接下来我们通过一个示例来具体展示如何使用QTableWidget展示数据库中的数据。

import sys
import pymysql
from PyQt5.QtWidgets import QApplication, QTableWidget, QTableWidgetItem

class TableWidget(QTableWidget):

    def __init__(self, data):
        super().__init__()
        self.data = data
        self.initUI()

    def initUI(self):
        self.setColumnCount(3)
        self.setHorizontalHeaderLabels(['编号', '姓名', '年龄'])

        rows_count = len(self.data)
        self.setRowCount(rows_count)
        for i in range(rows_count):
            for j in range(3):
                item = QTableWidgetItem(str(self.data[i][j]))
                self.setItem(i, j, item)

def get_data():
    conn = pymysql.connect(host='127.0.0.1', user='root', password='密码', database='test')
    cursor = conn.cursor()
    cursor.execute('select * from person')
    data = cursor.fetchall()
    cursor.close()
    conn.close()
    return data

if __name__=="__main__":
    app = QApplication(sys.argv)
    data = get_data()
    table = TableWidget(data)
    table.show()
    sys.exit(app.exec_())

在以上示例中,我们首先定义了一个名为TableWidget的类,继承自QTableWidget。TableWidget类中包含了一个data列表作为数据输入。在initUI()方法中,我们先设置了表格的列数和列名,接着根据数据列表设置了表格的行数和具体内容。在get_data()方法中,我们连接创建了mysql数据库,并查询了person表中的数据,最后关闭了数据库的连接。最后在应用中,我们传入相关数据并生成TableWidget对象,将其显示在窗口中。

示例二:支持表格的编辑

接下来我们通过一个示例具体展示如何在QTableWidget中支持表格的编辑。

import sys
from PyQt5.QtWidgets import QApplication,QMainWindow,QTableWidget,QTableWidgetItem
from PyQt5.QtCore import Qt

class TableWidget(QTableWidget):
    def __init__(self, parent=None):
        super(TableWidget, self).__init__(parent)
        self.initUI()

    def initUI(self):
        self.setColumnCount(3)
        self.setHorizontalHeaderLabels(['编号', '姓名', '年龄'])
        # 启用编辑模式
        self.setEditTriggers(QTableWidget.DoubleClicked)

        # 设置选中时为整行选中
        self.setSelectionBehavior(QTableWidget.SelectRows)

        # 添加行
        row = self.rowCount()
        self.insertRow(row)

        # 设置行数据
        self.setItem(row,0,QTableWidgetItem("1"))
        self.setItem(row,1,QTableWidgetItem("小明"))
        self.setItem(row,2,QTableWidgetItem("18"))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    table = TableWidget()
    table.show()
    sys.exit(app.exec_())

在以上示例中,我们在设置完表格的列名后先启用了表格的双击编辑模式,设置行选中为整行选中,并通过insertRow方法添加了一个新的行,随后通过setItem方法为新行设置了相关数据,并将其显示在表格中。在启用了编辑模式后,用户可以通过双击表格中的单元格,修改表格中的值。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – QTableWidget - Python技术站

(1)
上一篇 2023年5月10日
下一篇 2023年5月10日

相关文章

  • PyQt5 QDateTimeEdit – 当只有日期变化时发出信号

    下面是详细的讲解Python的PyQt5中QDateTimeEdit控件当只有日期变化时发出信号的完整使用攻略。 什么是QDateTimeEdit控件? QDateTimeEdit控件是PyQt5中一种日期和时间编辑控件,它可以让用户通过一个方便易用的对话框来选择一个日期和时间,并设置对应格式。该控件能够灵活地适应不同国家和地区的日期和时间格式。除了显示日期…

    python 2023年5月12日
    00
  • PyQt5 QSpinbox – 拖动其中的文本并将其放到自定义标签上

    让我们先了解一下QSpinBox。 QSpinBox是PyQt5中的一个小部件,它允许用户通过单击向上/向下箭头或键盘上的向上/向下键来选择整数。在加上一些自定义属性和方法之后,可以扩展其功能,实现我们的需求。 下面是一个完整的Python操作步骤: 1.导入PyQt5库: from PyQt5.QtWidgets import QApplication, …

    python 2023年5月12日
    00
  • PyQt5 – 中级复选框的背景颜色

    PyQt5是Python编程语言的GUI工具包,主要用于创建图形用户界面及其相关的应用程序。复选框是常见的交互式控件之一,通过复选框的选中状态可以实现一些特定的功能,如批量操作等。在PyQt5中,复选框的背景颜色可以使用QSS(Qt Style Sheets)样式表来进行自定义设置。 以下是使用PyQt5设置中级复选框背景颜色的完整攻略: 1. 安装PyQt…

    python 2023年5月10日
    00
  • PyQt5 QSpinBox – 获取右边距

    PyQt5是一种Python的GUI编程工具包。QSpinBox是其中的一个小部件,可以使用它来显示整数,并允许用户通过调整它们来更改显示的数字。获取QSpinBox右边距的方法非常简单,可以使用geometry()方法获取QSpinBox的几何信息,然后从中提取右边距的值。下面是以一个示例的形式展示如何获取QSpinBox的右边距。 示例一: 获取QSpi…

    python 2023年5月12日
    00
  • PyQt5 QCommandLinkButton – 访问光标

    PyQt5是一种Python编程语言绑定Qt库的解决方案,提供了许多可用于Qt的GUI部件。其中的QCommandLinkButton控件是一种可用于显示描述性文本、快捷方式和一个可选的图标的按钮。 在PyQt5中,通过使用QCommandLinkButton控件的setCursor方法可以设置该控件的鼠标光标。其函数原型为: self.setCursor(…

    python 2023年5月12日
    00
  • PyQt5 QColorDialog – 获取布局

    下面我就来详细讲解一下Python中PyQt5 QColorDialog控件的使用攻略。 什么是QColorDialog? QColorDialog是PyQt5中的一个颜色对话框控件,可以用于让用户选择颜色,返回RGBA值(红、绿、蓝、透明度四个值)。 如何使用QColorDialog? 1. 引入PyQt5库 from PyQt5 import QtWid…

    python 2023年5月12日
    00
  • PyQt5 – QColorDialog

    当你想要选择颜色时,QColorDialog 是一个非常方便的组件。它可以打开一个颜色选择器,以便用户从自定义颜色、标准颜色或近似颜色中选择颜色。 安装 PyQt5 在开始之前,确保你已经安装了 PyQt5 库,否则需要先安装它。可以通过 pip 命令来安装,如下面的代码所示: pip install PyQt5 使用 QColorDialog 使用 QCo…

    python 2023年5月12日
    00
  • PyQt5 QListWidget – 获取统一的项目尺寸属性

    下面是PyQt5 QListWidget-获取统一的项目尺寸属性的完整使用攻略。 问题描述 在开发PyQt5程序时,有时需要设置QListWidget中每个项目的尺寸属性为统一值,可以通过代码来实现。这样做可以保证程序中每个列表项目的尺寸一致,提高用户的体验效果。 解决方法 在PyQt5中,可以使用QListWidget的setUniformItemSize…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部