【问题标题】:Multiple Columns in PyQt4 (potentially using QTreeWidget)PyQt4 中的多列(可能使用 QTreeWidget)
【发布时间】:2012-08-16 03:01:08
【问题描述】:

我正在尝试让 QTreeWidget 的工作方式与此完全相同。在蟒蛇!我不关心多个选项卡,而是关心多个列。

这是我到目前为止所得到的。不过我不知道如何拥有多个标题。

self.pointListBox = QtGui.QTreeWidget()

x=QtGui.QTreeWidgetItem()
x.setText(0,str(coords[0]))
y=QtGui.QTreeWidgetItem()
y.setText(0,str(coords[1]))

Qname=QtGui.QTreeWidgetItem()
Qname.setText(0,new_point_name)

self.pointListBox.setHeaderItem(Qname)
parent = QtGui.QTreeWidgetItem(self.pointListBox)
parent.setText(0,new_point_name)
parent.addChild(x)
parent.addChild(y)

【问题讨论】:

    标签: python pyqt4 qtreewidget


    【解决方案1】:

    您需要解决一些问题。

    from PyQt4 import QtCore, QtGui
    import sys
    
    app = QtGui.QApplication(sys.argv)
    QtGui.qApp = app
    
    pointListBox = QtGui.QTreeWidget()
    
    header=QtGui.QTreeWidgetItem(["Tree","First","secondo"])
    #...
    pointListBox.setHeaderItem(header)   #Another alternative is setHeaderLabels(["Tree","First",...])
    
    root = QtGui.QTreeWidgetItem(pointListBox, ["root"])
    A = QtGui.QTreeWidgetItem(root, ["A"])
    barA = QtGui.QTreeWidgetItem(A, ["bar", "i", "ii"])
    bazA = QtGui.QTreeWidgetItem(A, ["baz", "a", "b"])
    
    
    pointListBox.show()
    sys.exit(app.exec_())
    

    我没有完成这个例子,但这应该会让你相当接近。

    注意,不是barA = QtGui.QTreeWidgetItem(A, ["bar", "i", "ii"]),没有错

    barA = QtGui.QTreeWidgetItem(A)
    barA.setText(0,"bar")
    barA.setText(1,"i")
    barA.setText(2,"ii")
    

    如果您需要在显示文本之前进行计算。

    【讨论】:

    • 你知道如何指定列宽吗?谢谢。
    • 我将我的示例修改为一个完整的 pyqt 程序,按原样运行。
    • 是的。第一个和窗户一样宽。应该有办法修改它...
    • 嗯...可以使用setColumnWidth 强制执行,但如果您显示的项目将自己标识为那么宽,则一定会发生一些奇怪的事情。
    猜你喜欢
    • 1970-01-01
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-17
    • 2012-04-20
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多