python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Pyqt QTableWidget组件

Pyqt的QTableWidget组件的使用

作者:爬无止境

QTableWidget是PyQt6中的一个表格控件,用于显示和编辑二维表格数据,本文主要介绍了Pyqt的QTableWidget组件的使用,具有一定的参考价值,感兴趣的可以了解一下

QTableWidget 是 PyQt6 中的一个表格控件,用于显示和编辑二维表格数据。它继承自 QTableView,提供了更简单的方式来处理表格数据,适合用于需要展示结构化数据的场景。

1. 常用方法

1.1 构造函数

1.2 设置行列数

1.3 设置表头

1.4 设置单元格内容

1.5 设置单元格属性

1.6 选择模式

1.7 信号

2. 例子

import os
import sys
import webbrowser

import qt_material
from PyQt6.QtWidgets import *
from PyQt6.QtCore import *

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.resize(400, 300)

        self.init_widget()
        self.init_signal()
        self.init_getdata()
        self.init_layout()

    def init_widget(self):
        # tablewidget
        self.table = QTableWidget()
        self.table.setColumnCount(2)
        self.table.setHorizontalHeaderLabels(['网站', 'Url'])
        self.table.horizontalHeader().setSectionResizeMode(QHeaderView.ResizeMode.Stretch)
        self.table.setAlternatingRowColors(True)
        self.table.setEditTriggers(QAbstractItemView.EditTrigger.NoEditTriggers)  # 无法编辑



    def init_getdata(self):
        row_count = self.table.rowCount()
        self.table.setRowCount(row_count + 1)
        self.table.setItem(0, 0, QTableWidgetItem('百度'))
        self.table.setItem(0, 1, QTableWidgetItem('https://www.baidu.com/'))

        row_count = self.table.rowCount()
        self.table.setRowCount(row_count + 1)
        self.table.setItem(1, 0, QTableWidgetItem('腾讯视频'))
        self.table.setItem(1, 1, QTableWidgetItem('https://v.qq.com/'))

    def init_signal(self):
        self.table.cellDoubleClicked.connect(self.open_url)  # 双击打开网页

    def init_layout(self):
        v_layout = QVBoxLayout()
        v_layout.addWidget(self.table)
        self.setLayout(v_layout)

    def open_url(self, row, column):
        print(f'{row} {column}')
        if int(column) == 1:
            url = self.table.item(row, column).text()
            webbrowser.open(url)


if __name__ == '__main__':
    os.environ["QT_IM_MODULE"] = "ibus"  # mac系统解决输入法不兼容

    app = QApplication(sys.argv)
    qt_material.apply_stylesheet(app, theme='light_pink.xml')
    window = Window()
    window.show()
    sys.exit(app.exec())

3. 总结

优点

适用场景

到此这篇关于Pyqt的QTableWidget组件的使用的文章就介绍到这了,更多相关Pyqt QTableWidget组件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:
阅读全文