2017-08-04 6 views
-1

このアプリケーションが私のUIを読み込まない理由はわかりません。私はインターネット上で見つけた正確なコードを書いたが、結果は得られなかった。UIアプリケーションがPyQt5をロードしない

from PyQt5.uic import loadUi 
from PyQt5.QtWidgets import QApplication, QMainWindow 
import sys 


class Receipt(QMainWindow): 

    def __init__(self): 
     super().__init__() 
     self.ui = None 
     self.load_ui() 
     self.load_signals() 

    def load_ui(self): 
     self.ui = loadUi('window.ui') 
     self.show() 

    def load_signals(self): 
     pass 

app = QApplication(sys.argv) 
receipt = Receipt() 
sys.exit(app.exec_()) 

答えて

1

PyQt5.uic.loadUi(uifile [、baseinstance =なし【、パッケージ=」[、 resource_suffix = '_ RC']]])

Qt Designerの.uiファイルを読み込み、ユーザ インタフェースのインスタンスを返します。

パラメータ:

uifile - ファイル名または .uiファイルを含むファイルのようなオブジェクト。

ベースインスタンス - Qtベースクラスのオプションのインスタンスです。 これを指定すると、ユーザーインターフェイスが作成されます。そうしないと、基本クラスの新しい インスタンスが自動的に作成されます。

パッケージ - カスタムウィジェットの相対インポートの基本パッケージであるオプションパッケージ。

私は

self.ui = loadUi('window.ui', self) 
の下に表示されてあなたは、パラメータとして自己インスタンスを渡す必要があります
0

このようなあなたのReceiptクラスへの引数としてQMainWindowに渡してみてください。

app = QApplication(sys.argv) 
receipt = Receipt(QMainWindow) 
sys.exit(app.exec_()) 

これはあなたのクラスにメインウィンドウを設定し、あなたがそれを実行したときにアプリが表示されます。 documentationによれば

関連する問題