python 类调用ui控件_Python GUI教程(八):在主窗口中调用对话框

本篇将会介绍:

使用qt设计师创建两个窗口

转换设计师UI代码为Python代码

从主窗口中调用对话框窗口

一、创建两个窗口

根据本篇的最终目标——在主窗口中调用对话窗口,我们先使用qt设计师创建两个窗口,其中一个主窗口MainWindows,一个含有两个按钮的对话窗口Dialog。

通过qt设计师新建一个MainWindows窗口,并在其中放置一个按钮:

9c1380a0463dc518359461caa9749eb5.gif

保存为UI文件,再新建一个对话窗口:

5994bd7f268833028518db14e39b5460.gif

同样保存为UI文件。

ef369c31fd8d66f7cb22e15d100c2d05.gif

这样我们本地文件夹有两个可供转换为Python代码的UI文件:

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 PyQt ,可以使用 `QUiLoader` 类来加载一个 UI 文件,并将其转换为一个 `QWidget` 对象。因此,要在一个类调用两个 UI 文件,可以按照以下步骤进行: 1. 导入 `QtCore` 和 `QtGui` 模块以及 `QUiLoader` 类: ``` from PyQt5 import QtCore, QtGui, QtWidgets, uic from PyQt5.QtUiTools import QUiLoader ``` 2. 定义一个类,并在该类的初始化方法加载两个 UI 文件,并将它们分别赋值给两个实例变量: ``` class MyWidget(QtWidgets.QWidget): def __init__(self): super().__init__() # 加载第一个 UI 文件 loader = QUiLoader() ui_file_1 = QtCore.QFile("file1.ui") ui_file_1.open(QtCore.QFile.ReadOnly) self.ui_1 = loader.load(ui_file_1, self) ui_file_1.close() # 加载第二个 UI 文件 ui_file_2 = QtCore.QFile("file2.ui") ui_file_2.open(QtCore.QFile.ReadOnly) self.ui_2 = loader.load(ui_file_2, self) ui_file_2.close() ``` 3. 在需要的时候,通过 `self.ui_1` 和 `self.ui_2` 访问两个 UI 文件件。 完整代码示例: ``` from PyQt5 import QtCore, QtGui, QtWidgets, uic from PyQt5.QtUiTools import QUiLoader class MyWidget(QtWidgets.QWidget): def __init__(self): super().__init__() # 加载第一个 UI 文件 loader = QUiLoader() ui_file_1 = QtCore.QFile("file1.ui") ui_file_1.open(QtCore.QFile.ReadOnly) self.ui_1 = loader.load(ui_file_1, self) ui_file_1.close() # 加载第二个 UI 文件 ui_file_2 = QtCore.QFile("file2.ui") ui_file_2.open(QtCore.QFile.ReadOnly) self.ui_2 = loader.load(ui_file_2, self) ui_file_2.close() # 在需要的时候,通过 self.ui_1 和 self.ui_2 访问两个 UI 文件件 self.ui_1.pushButton_1.clicked.connect(self.on_pushbutton_1_clicked) self.ui_2.pushButton_2.clicked.connect(self.on_pushbutton_2_clicked) def on_pushbutton_1_clicked(self): print("Button 1 clicked") def on_pushbutton_2_clicked(self): print("Button 2 clicked") if __name__ == "__main__": app = QtWidgets.QApplication([]) widget = MyWidget() widget.show() app.exec_() ``` 在上面的代码,第一个 UI 文件的 pushButton_1 件与 `on_pushbutton_1_clicked` 方法关联,第二个 UI 文件的 pushButton_2 件与 `on_pushbutton_2_clicked` 方法关联。当这两个按钮被点击时,将会打印相应的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值