0

我试图QTreeWidgetItem在 2 秒上显示一个实例QTreeWidget,最终只在第一棵树上显示的项目没有被通知。我还没有看到它的 API 文档谈到限制(如果有的话)。有没有办法解决?

#!/usr/bin/python
import os
import sys  

from PySide.QtCore import QFile
from PySide.QtUiTools import QUiLoader
from PySide.QtGui import QApplication, QTreeWidget, QTreeWidgetItem, QWidget

class MyTreeWidgetItem(QTreeWidgetItem):
    def __init__(self, *args):  
       super(MyTreeWidgetItem, self).__init__()

class MyWidget(QWidget):
    def __init__(self, *args):  
       super(MyWidget, self).__init__()

       loader = QUiLoader()
       file = QFile('./src/prove_qtreewidget/qtree_mainwidget.ui') 
       file.open(QFile.ReadOnly)
       self.widget_ui = loader.load(file, self)
       file.close()

       item1 = MyTreeWidgetItem(self)
       item1.setText(0, 'Item 1')

       _tw1 = self.widget_ui.findChild(QTreeWidget, '_tree_widget_1')
       _tw2 = self.widget_ui.findChild(QTreeWidget, '_tree_widget_2')
       _tw1.addTopLevelItem(item1)
       _tw2.addTopLevelItem(item1)

if __name__ == '__main__':  
   print("Running in " + os.getcwd() + " .\n")    
   app = QApplication(sys.argv)      
   win = MyWidget()  
   win.show()    
   app.exec_()

.ui上面的文件可以在这里找到

使用 Qt 4.8、Ubuntu 12.04

我没有尝试PyQt绑定,但我只是假设不应该有任何不同的没有证据。

4

1 回答 1

0

您需要的是一个模型和一个QTreeView,这就是它们的用途:

模型/视图编程:小部件不维护内部数据容器。他们通过标准化接口访问外部数据,从而避免数据重复。

于 2012-12-21T15:02:33.863 回答