Qt4 如何使用PySide读取.ui文件中的小部件

Qt4 如何使用PySide读取.ui文件中的小部件,qt4,pyside,Qt4,Pyside,我试图访问通过.ui文件加载的Qt元素。但是我得到了一个错误: AttributeError: 'TreeviewWidgetSelectProve' object has no attribute '_treeview' 完整的和可分别在这些链接中找到。代码段: ui_file_path = os.path.join( '/home/userdaze/pyside_test', 'resource', 'treeview.ui') loader = QUiL

我试图访问通过.ui文件加载的
Qt
元素。但是我得到了一个错误:

AttributeError: 'TreeviewWidgetSelectProve' object has no attribute '_treeview'
完整的和可分别在这些链接中找到。代码段:

    ui_file_path = os.path.join(
        '/home/userdaze/pyside_test', 'resource', 'treeview.ui')

    loader = QUiLoader(self)
    ui_file = QFile(ui_file_path)
    self._widget_top = loader.load(ui_file, self)

    self._treeview = self._widget_top.findChild(QTreeView, '_treeview')
    self._treeview.setModel(self._std_model)
无论我是否使用中建议的
findChild
,都不会改变这种情况。如果正在使用,则返回
NoneType

怎么了?谢谢大家!


Ubuntu Quantal上的python pyside 1.1.1-3恐怕你的.ui文件坏了。 你试过在QtDesigner中打开它吗?当我这样做时,它会报告一个错误。 因此,我用QtDesigner重新创建了该文件(只是一个带有QTreeView的QMainWindows),您的问题就消失了

不过,还有很多其他问题:

  • self没有成员uiw(第33行和第38行)

  • 据我所知,将TreeviewWidgetSelectProve实例传递给QUiLoader并不起作用,这就是为什么我必须实现自定义加载程序的原因:


对不起,我在删除不必要的部件时,不知怎么把代码弄乱了。现在它们被更新了。