
accept():关闭对话框,表示肯定的选择,例如“确定”
reject():关闭对话框,表示否定的选择,例如“取消”
close():关闭对话框
点击工具栏上的Edit Signals/Slots按钮

鼠标点击选中确定按钮,按住鼠标左键拖动到窗体空白区域后释放左键,弹出关联设置对话框

左边选clicked,右边选accept(),然后点OK。
底部的Signals Slots Editor出现一条数据


将关闭按钮与close()槽函数关联

右边没有close按钮,要选显示从QWidget继承的信号和槽





项目下只有一个__init__.py文件

选择窗体,编译

编译后查看文件

上面红色框框中的两行代码就是刚刚建好的信号与槽的关联
按照界面与业务逻辑分离且界面独立封装的方式定义一个类QmyDialog,保存为myDialog.py。代码如下:
##与UI窗体类对应的业务逻辑类
import sys
from PyQt5.QtWidgets import QApplication, QDialog
from Ui_Dialog import Ui_Dialog
class QmyDialog(QDialog):
def __init__(self, parent=None):
super().__init__(parent) #调用父类构造函数,创建窗体
self.ui=Ui_Dialog() #创建UI对象
self.ui.setupUi(self) #构造UI界面
if __name__ == "__main__": #用于当前窗体测试
app = QApplication(sys.argv) #创建GUI应用程序
form=QmyDialog() #创建窗体
form.show()
sys.exit(app.exec_())
myDialog可以直接运行

确定和退出两个按钮都可以正常使用。


这是因为在QmyDialog的构造函数__init__中创建了窗体类的实例对象self.ui,并调用了setupUi()函数。而SetupUi()函数实现了这两个按钮的信号与窗体相关槽函数的关联。
其他按钮还没填代码,所以不行。
myDialog.py可以当作主程序直接运行,但是建议单独编写一个主程序文件appMain.py。
该文件的功能是创建应用程序和主窗体,然后显示主窗体,并开始运行应用程序。
appMain.py将myDialog.py文件的测试运行部分单独拿出来作为一个文件
当一个应用程序有多个窗体,并且窗体之间有数据传递时,appMain.py负责创建应用程序的主窗体并运行起来,这样使整个应用程序的结构更清晰
appMain.py的代码如下:
## GUI应用程序主程序
import sys
from PyQt5.QtWidgets import QApplication
from myDialog import QmyDialog
app = QApplication(sys.argv) #创建GUI应用程序
mainform=QmyDialog() #创建主窗体
mainform.show() #显示主窗体
sys.exit(app.exec_())
进入Qt Creator,右键点击清空按钮,选择转到槽

选择clicked

在弹出的文件中复制函数名

进入Eric6,在myDialog.py文件的QmyDialog类里定义一个同名函数并编写代码

在Ui_Dialog.py中添加如下函数

在myDialog.py中添加对这个函数的调用


内容被清空

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。