【发布时间】:2016-06-24 12:33:30
【问题描述】:
在 PyQt4 中给定一个带有一些行和列的树小部件:
1) 有没有一种方法可以轻松地遍历所有单元格?
2) 如何检查除第一列之外的复选框是否被选中?
到目前为止,我只设法获得了第一列中复选框的结果,请参阅here。
为了澄清,这里是小部件我想象的样子:(第四列应该是可编辑的)
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys
def main():
app = QApplication (sys.argv)
tree = QTreeWidget ()
item = QTreeWidgetItem()
tree.headerItem().setText(0, "col1")
tree.headerItem().setText(1, "col2")
tree.headerItem().setText(2, "col3")
tree.headerItem().setText(3, "Notes")
for ii in xrange(3):
parent = QTreeWidgetItem(tree)
parent.setText(0, "Parent {}".format(ii))
parent.setFlags(parent.flags() | Qt.ItemIsTristate | Qt.ItemIsUserCheckable)
for x in xrange(4):
child = QTreeWidgetItem(parent)
child.setFlags(child.flags() | Qt.ItemIsUserCheckable)
child.setText(0, "Child {}".format(x))
child.setCheckState(0, Qt.Unchecked)
#create the checkbox
for i in xrange(1, 5):
if i < 3:
child.setText(i, "")
child.setCheckState(i, Qt.Unchecked)
if i == 3:
child.setText(i, "Any Notes?")
child.setFlags(child.flags() | Qt.ItemIsEditable)
tree.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
【问题讨论】:
标签: python pyqt pyqt4 qtreewidget