PyQT5 (四十) 使用扩展表格控件 QTableWidget控件 的案例

该示例展示了如何在PyQt5中使用QTableWidget创建一个扩展表格视图控件。控件继承自QTableView,每个单元格为QTableWidgetItem。程序初始化了一个4行3列的表格,并设置了表头,填充了示例数据。同时,禁用了单元格编辑,实现了整行选择,并调整了列宽和行高以适应内容。此外,还提供了自定义表头、隐藏显示及隐藏表格线等功能。
摘要由CSDN通过智能技术生成

使用扩展表格控件 QTableWidgit控件 的案例
由QTableView继承而来

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

import sys

from PyQt5 import QtPrintSupport, QtGui
from PyQt5.QtCore import Qt, QMimeData, QDate, QDateTime, QTime, QStringListModel
from PyQt5.QtGui import QIcon, QPainter, QBrush, QPixmap, QStandardItemModel, QStandardItem
from PyQt5.QtPrintSupport import QPageSetupDialog, QPrinter, QPrintDialog
from PyQt5.QtWidgets import QApplication, QWidget, QComboBox, QFormLayout, QLabel, QLineEdit, QPushButton, QGridLayout, \
    QCalendarWidget, QVBoxLayout, QDateTimeEdit, QAction, QMainWindow, QTextEdit, QStatusBar, QFileDialog, QDialog, \
    QTableView, QMessageBox, QListView, QListWidget, QHBoxLayout, QTableWidget, QTableWidgetItem, QAbstractItemView

'''
使用扩展表格控件 QTableWidgit控件 的案例
由QTableView继承而来

每一个cell(单元格)是一个QTableWidgetItem
'''


class tableWidgetDemo(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 设置定位和左上角坐标
        self.setGeometry(300, 300, 460, 360)
        # 设置窗口标题
        self.setWindowTitle('QTableWidget扩展表格视图控件 的演示')
        # 设置窗口图标
        # self.setWindowIcon(QIcon('../web.ico'))

        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","c"])

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



        self.setLayout(layout)

        # self.listwidget.itemClicked.connect(self.clicked)
        #
        # self.setCentralWidget(self.listwidget)



    def clicked(self,Index):
        QMessageBox.information(self,'QListWidget 扩展表格视图',"您选择了:"+self.listwidget.item(self.listwidget.row(Index)).text())




if __name__ == '__main__':
    app = QApplication(sys.argv)
    # 设置应用图标
    app.setWindowIcon(QIcon('../web.ico'))
    w = tableWidgetDemo()
    w.show()
    sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值