0

Qt.ui ファイル経由で読み込まれる要素にアクセスしようとしています。しかし、私はエラーが発生しています:

AttributeError: 'TreeviewWidgetSelectProve' object has no attribute '_treeview'

完全なpython コード.ui ファイルは、これらのリンクからそれぞれ入手できます。コードスニペット:

    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

4

1 に答える 1

2

.ui ファイルが壊れているようです。QtDesignerで開いてみましたか?それを行うと、エラーが報告されます。そのため、QtDesigner (QTreeView を持つ QMainWindows のみ) でファイルを再作成すると、問題はなくなります。

ただし、他にも多くの問題があります。

  • self にはメンバー uiw がありません (33 行目と 38 行目)

  • TreeviewWidgetSelectProve のインスタンスを QUiLoader に渡すことは、私が知る限り機能しません。そのため、カスタム ローダーを実装する必要がありました。 /binding_helper.py#L199

于 2013-03-01T17:10:25.297 に答える