1

コマンドで変換されたファイルを持っています:pyside-uic -o ui_name.py name.uiプロジェクトでそれを使用しようとしています。最初のファイル:

class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        self.ui_window = ui_window.Ui_MainWindow()

        self.btn5 = QPushButton(QIcon(),"Open", self)
        self.btn5.move(0, 20)
        self.btn5.resize(70, 20)
        self.btn5.clicked.connect(self.doAction5)

    def doAction5(self):
        self.ui_window.Show()

2 番目 (ui_window.py):

class Ui_MainWindow(object):
.......
    def Show(self):
    self.show()

プロジェクトを実行してボタンを押すと、エラーが発生します。

AttributeError: 'Ui_MainWindow' object has no attribute 'show'

何と交換すればいいのかわかりません。

編集: 最初のファイル コードが編集されました。

4

2 に答える 2

2

を実行するpyside-uic -o ui_name.py name.uiと、インターフェイスの python ファイル ui_name.py が作成されます。このファイルでは何も変更しないでください。このファイルは、次のようにメイン コードにインポートすることを意図しています。

from ui_name import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super(MainWindow, self).__init__()
        self.setupUi(self)

        self.btn5 = QPushButton(QIcon(),"Open", self)
        self.btn5.move(0, 20)
        self.btn5.resize(70, 20)
        self.btn5.clicked.connect(self.doAction5)

        self.show()
于 2012-12-15T19:21:06.770 に答える
0

window.pyファイルで次のコードを試してください。

from Ui_MyWindow import Ui_myWindow

class myWindow(QMainWindow, Ui_myWindow):
    def __init__(self, parent=None):
        super(myWindow, self).__init__(parent)
        self.setupUi(self)

Uiファイルの名前は のようUi_MyWindow.pyになり、そこからインポートするクラスは次のようになります。Ui_myWindow

ウィンドウを表示するには、次のコードを の最後に追加しますwindow.py

if __name__ == "__main__":
    import  sys

    app = QApplication(sys.argv)
    main = myWindow()
    main.show()
    sys.exit(app.exec_())
于 2012-12-15T19:16:41.260 に答える