【QTdesigner】课时67.扩展的表格控件(QTableWidget)【pyqt5+QTdesigner模式】

>>> 点击进入:pyqt5专栏<<<

老师原课件下载地址:
有积分的朋友,支持下我,打赏也OK。
不下载也可以,我每节课会吧代码贴出来


视频链接

P66课时67.扩展的表格控件(QTableWidget)


知识点扩充

PyQt5高级界面控件之QTableWidget(四)

QTableWidget 的常用方法
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


课程重点

在这里插入图片描述


代码位置

在这里插入图片描述


完整代码

'''

扩展的表格控件(QTableWidget)

QTableView

每一个Cell(单元格)是一个QTableWidgetItem

'''

import sys
from PyQt5.QtWidgets import (QWidget, QTableWidget, QHBoxLayout, QApplication, QTableWidgetItem, QAbstractItemView)


class TableWidgetDemo(QWidget):
    def __init__(self):
        super(TableWidgetDemo,self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("QTableWidget演示")
        self.resize(430, 230);
        layout = QHBoxLayout()
        tablewidget = QTableWidget()
        tablewidget.setRowCount(4)
        tablewidget.setColumnCount(3)

        layout.addWidget(tablewidget)

        tablewidget.setHorizontalHeaderLabels(['姓名','年龄','籍贯'])
        nameItem = QTableWidgetItem("小明")
        tablewidget.setItem(0,0,nameItem)

        ageItem = QTableWidgetItem("24")
        tablewidget.setItem(0,1,ageItem)

        jgItem = QTableWidgetItem("北京")
        tablewidget.setItem(0,2,jgItem)

        # 禁止编辑
        tablewidget.setEditTriggers(QAbstractItemView.NoEditTriggers)

        # 整行选择
        tablewidget.setSelectionBehavior(QAbstractItemView.SelectRows)
        # 调整列和行
        tablewidget.resizeColumnsToContents()
        tablewidget.resizeRowsToContents()

        tablewidget.horizontalHeader().setVisible(False)
     #   tablewidget.verticalHeader().setVisible(False)

        tablewidget.setVerticalHeaderLabels(["a","b"])

        # 隐藏表格线
        tablewidget.setShowGrid(False)

        self.setLayout(layout)


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


遇到的问题

找不到对应的功能
在这里插入图片描述


改写效果展示

在这里插入图片描述


改写注意点

设置item
在这里插入图片描述

禁止编辑:
在这里插入图片描述
在这里插入图片描述
选择模式:
在这里插入图片描述

设置表头隐藏和显示:
老师的把显示关闭了,所以导致列标题没显示出来。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
单独设置每一个单元格的显示效果
我还没看到如何统一设置,懒得找了
在这里插入图片描述


改写代码(QTdesigner模式)

# -*- coding:utf-8 -*-
'''
@Author: knocky
@Blog: https://blog.csdn.net/zzx188891020
@E-mail: 188891020@qq.com
@File: class67.py
@CreateTime: 2020/6/3 22:58
'''

import sys
from PyQt5.QtWidgets import QApplication,QWidget,QAbstractItemView
from PyQt5 import uic


class my_form(QWidget):
    def __init__(self):
        super().__init__()
        uic.loadUi('../ui_package/class67.ui', self)
        # 调整列和行
        self.tableWidget.resizeColumnsToContents()
        self.tableWidget.resizeRowsToContents()


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

PyQt5是一个Python编程语言的工具包,用于创建图形用户界面(GUI)。SQLite是一个轻量级的嵌入式数据库引擎,它可以轻松地集成到应用程序中。QTableWidgetPyQt5中一个用于显示和编辑二维表格数据的小部件。 在PyQt5中,使用QTableWidget来显示SQLite数据库中的数据,可以按照以下步骤进行操作: 1. 首先,导入需要的模块:`from PyQt5.QtWidgets import QApplication, QMainWindow, QTableWidget, QTableWidgetItem` 并连接到SQLite数据库:`import sqlite3` 2. 创建一个继承自QMainWindow的自定义窗口类,并在窗口的初始化方法中设置布局等属性。 3. 创建一个QTableWidget实例,并设置它的行数和列数:`table = QTableWidget(row_count, col_count)` 4. 连接到SQLite数据库:`conn = sqlite3.connect('your_database.db')` 5. 创建一个游标对象:`cursor = conn.cursor()` 6. 执行SQL查询语句获取数据库中的数据:`cursor.execute('SELECT * FROM your_table')` 7. 使用fetchall()方法获取查询结果:`data = cursor.fetchall()` 8. 遍历查询结果,并将数据逐行添加到QTableWidget中:`for row_number, row_data in enumerate(data):` `for column_number, column_data in enumerate(row_data):` `table.setItem(row_number, column_number, QTableWidgetItem(str(column_data)))` 9. 最后,关闭数据库连接:`conn.close()` 10. 将QTableWidget添加到窗口的主布局中:`self.setCentralWidget(table)` 通过以上步骤,就可以使用PyQt5和SQLite数据库来显示自定义表格数据。在需要时,可以根据需求对QTableWidget进行自定义样式的设置,例如设置列宽、行高、表头等。 希望以上回答对你有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值