下に示すように、まずは、メインウィンドウにはQt Designerで作成し、サブダイアログウィンドウ:
設計が完了した後、2つの別々のファイルの実装が子ウィンドウを呼び出すために、2つのPYファイルに変換、私はいくつかの情報を読んで、基本的に、メインウィンドウにファイルを達成するために、ので、私の実装の下に与えられた、私が欲しいものではなく、新しいファイルを作成し、メインウィンドウを実装し、子ウィンドウを呼び出します。
次のように最初のメインウィンドウのファイルでインポートファイルサブウインドウ、およびウィンドウクラスの初期化コードの子ウィンドウを作成します:
from ChildWindowTest import *
class ChildWin(QtWidgets.QDialog, Ui_Dialog):
def __init__(self):
super(ChildWin, self).__init__()
self.setupUi(self)
コンストラクタのスーパー()は必須です、そうでない場合、彼らは表示サブ画面を呼び出すことができ、子ウィンドウのボタンやその他のコントロールを呼び出すことはできません。
そして、達成するためのポップアップサブウィンドウ機能、子ウィンドウ関数[OK]ボタンの実現は、サブウインドウをクローズクリックして、テキスト・メッセージは、ボックスのメインウィンドウに表示されています。パフォーマンス機能は、メインウィンドウクラスで定義されている達成するために、次のようにコードは次のとおりです。
# 弹出子窗口与实现【确定】按钮功能
def showDialog(self):
# 创建子窗口实例
dialog = ChildWin()
# 显示子窗口
dialog.show()
# 实现子窗口中的【确定】按钮功能
def pB_OK():
self.textEdit.setPlainText("子窗口弹出成功!")
dialog.close()
# 关联【确定】按钮
dialog.pushButton.clicked.connect(pB_OK)
dialog.exec_()
私が直接、内部で定義されているプロのテストの有効厚く、と個人的に再定義するコンビニエンス混乱単独よりも感じた、[OK]ボタン機能!コードdialog.exec_()の最後の行が不可欠であり、多くのサブ・ウィンドウが自動的に閉じに関するポップアップ表示されます!
次のように最後に、子ウィンドウに関連付けられている[開く]ボタンで、その後、メインウィンドウを表示し、コードは、最後の書き込みで実行することができます:
# 设置【打开子窗口】按钮
self.pushButton.clicked.connect(self.showDialog)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
この表示コードがPYファイルに変換UIで直接使用することを意図している、あなたは別のファイルとクラスを作成する必要はありません!次のような効果を実行した後です。