PyQt. How to insert a widget in a QTableView(PYQT.如何在QTableView中插入小部件)
本文介绍了PYQT.如何在QTableView中插入小部件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
有一个表:
tab=QTableView()
sti=QStandardItemModel(parent=None)
sti.appendRow([QStandardItem(str(1)),QStandardItem(str(2)),QStandardItem(str(3)),QStandardItem(str(4))])
tab.setModel(sti)
tab.setEditTriggers(QAbstractItemView.NoEditTriggers)
有一个按钮:
btn=QPushButton('Press', self)
btn.clicked.connect(self.on_clicked)
btn.resize(btn.sizeHint())
任务:如何在QStandardItem(str(4))的表单元格插入中插入按钮BTN?它有一个QTableWidget类的方法.setCellWidget(),但我继承了QTableView。如果我将使用QTableWidget,我将不能使用私有方法.setModel()
推荐答案
要能够插入小部件,必须使用setIndexWidget()
方法,其中与单元格关联的QModelIndex()
必须作为第一个参数传递,考虑到行和列的索引从0开始,对于文本等于str(4)
的项,其坐标为0, 3
:
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
app.setStyle("fusion")
tab = QTableView()
sti = QStandardItemModel()
sti.appendRow([QStandardItem(str(i)) for i in range(4)])
tab.setModel(sti)
tab.setEditTriggers(QAbstractItemView.NoEditTriggers)
tab.setIndexWidget(sti.index(0, 3), QPushButton("button"))
tab.show()
sys.exit(app.exec_())
如果您有QStandardItem()
,还可以通过indexFromItem()
方法访问QModelIndex
这篇关于PYQT.如何在QTableView中插入小部件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:PYQT.如何在QTableView中插入小部件


猜你喜欢
- ";find_element_by_name(';name';)";和&QOOT;FIND_ELEMENT(BY NAME,';NAME';)";之间有什么区别? 2022-01-01
- 我如何透明地重定向一个Python导入? 2022-01-01
- 我如何卸载 PyTorch? 2022-01-01
- 如何使用PYSPARK从Spark获得批次行 2022-01-01
- 使用 Cython 将 Python 链接到共享库 2022-01-01
- 计算测试数量的Python单元测试 2022-01-01
- CTR 中的 AES 如何用于 Python 和 PyCrypto? 2022-01-01
- 检查具有纬度和经度的地理点是否在 shapefile 中 2022-01-01
- YouTube API v3 返回截断的观看记录 2022-01-01
- 使用公司代理使Python3.x Slack(松弛客户端) 2022-01-01