我正在尝试访问通过.ui文件加载的Qt
个元素。但是我收到了错误:
AttributeError: 'TreeviewWidgetSelectProve' object has no attribute '_treeview'
分别在这些链接中提供完整python code和.ui file。代码段:
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)
我是否使用this thread中建议的findChild
并未改变这种情况。如果正在使用,它将返回NoneType
。
有什么问题?谢谢!
关于Ubuntu Quantal的python-pyside 1.1.1-3
答案 0 :(得分:2)
我担心你的.ui文件坏了。 你试过在QtDesigner中打开它吗?当我这样做时,它报告错误。 所以我用QtDesigner(只是带有QTreeView的QMainWindows)重新创建了文件,你的问题就消失了。
但是还有很多其他问题:
self没有会员uiw(第33和38行)
将TreeviewWidgetSelectProve的实例传递给QUiLoader并不是我所知道的,这就是我必须实现自定义加载器的原因:https://github.com/ros-visualization/python_qt_binding/blob/groovy-devel/src/python_qt_binding/binding_helper.py#L199