首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PyQt对话框 - 如何在按下按钮后退出?

在PyQt对话框中,按下按钮后退出可以使用信号和槽来实现。首先,需要在按钮的槽中连接一个信号,例如“clicked”信号,然后在主窗口中定义一个槽来处理该信号。当信号被触发时,槽将被调用,并且可以执行一些必要的操作,例如关闭对话框或更新状态。

以下是一个示例代码,演示如何在PyQt对话框中按下按钮后退出:

代码语言:python
代码运行次数:0
复制
import sys
from PyQt5.QtWidgets import QApplication, QDialog, QButtonGroup, QGridLayout, QMainWindow, QPushButton

class MyDialog(QDialog):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("PyQt Dialog")
        self.setGeometry(300, 300, 400, 200)

        self.init_layout()

    def init_layout(self):
        grid = QGridLayout()

        button_group = QButtonGroup()

        ok_button = QPushButton("OK")
        cancel_button = QPushButton("Cancel")
        reset_button = QPushButton("Reset")

        button_group.addButton(ok_button)
        button_group.addButton(cancel_button)
        button_group.addButton(reset_button)

        grid.addWidget(QPushButton("Press button to exit"), 0, 0)
        grid.addWidget(button_group, 1, 0)
        grid.addWidget(QPushButton("Press button to exit"), 2, 0)

        self.setLayout(grid)

        self.connect(ok_button, SIGNAL("clicked()"), self.accept)
        self.connect(cancel_button, SIGNAL("clicked()"), self.reject)
        self.connect(reset_button, SIGNAL("clicked()"), self.reset_form)

if __name__ == "__main__":
    app = QApplication(sys.argv)

    dialog = MyDialog()
    dialog.exec_()

    sys.exit(app.exec_())

在这个例子中,我们定义了一个名为MyDialog的类,它继承自QDialog。我们在这个类中定义了一个init_layout方法,用于初始化对话框的布局。在init_layout方法中,我们使用QButtonGroup来创建一个按钮组,然后使用addWidget方法将按钮添加到布局中。最后,我们将按钮连接到槽,以便在按钮被点击时退出对话框。

在主程序中,我们创建了一个MyDialog实例,并使用exec_()方法来显示对话框。在对话框被关闭后,我们使用sys.exit()来退出应用程序。

除了使用信号和槽来实现退出功能外,我们还可以使用QDialogfinished信号,并在信号被触发时退出对话框。以下是一个使用finished信号的示例代码:

代码语言:python
代码运行次数:0
复制
import sys
from PyQt5.QtWidgets import QApplication, QDialog, QButtonGroup, QGridLayout, QMainWindow, QPushButton

class MyDialog(QDialog):
    def __init__(self):
        super().__init__()

        self.setWindowTitle("PyQt Dialog")
        self.setGeometry(300, 300, 400, 200)

        self.init_layout()

    def init_layout(self):
        grid = QGridLayout()

        button_group = QButtonGroup()

        ok_button = QPushButton("OK")
        cancel_button = QPushButton("Cancel")
        reset_button = QPushButton("Reset")

        button_group.addButton(ok_button)
        button_group.addButton(cancel_button)
        button_group.addButton(reset_button)

        grid.addWidget(QPushButton("Press button to exit"), 0, 0)
        grid.addWidget(button_group, 1, 0)
        grid.addWidget(QPushButton("Press button to exit"), 2, 0)

        self.setLayout(grid)

        self.connect(ok_button, SIGNAL("clicked()"), self.accept)
        self.connect(cancel_button, SIGNAL("clicked()"), self.reject)
        self.connect(reset_button, SIGNAL("clicked()"), self.reset_form)
        self.finished.connect(self.close)

if __name__ == "__main__":
    app = QApplication(sys.argv)

    dialog = MyDialog()
    dialog.exec_()

    sys.exit(app.exec_())

在这个例子中,我们同样定义了一个名为MyDialog的类,它继承自QDialog。我们在这个类中定义了一个init_layout

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

PyQt4 - (2) 第一印象 (pyqt的入门)

通过调用exit()方法或者销毁widget来终止事件循环,调用sys.exit()方法确保了程序可以明确的退出,也就是程序退出后会告知系统。...图1:simple 添加图标 应用程序的图标一般就是一个在程序标题栏左上角显示的小图片,下面的例子我们展示如何使用PyQt4来显示图标,同时引入一些新的方法。  1 #!...QPushButton(string text, QWidget parent = None)     参数text是在按钮上显示的文本,parent是按钮的父容器。  1 #!...图4:quit button 对话框     默认情况,如果我们点击了标题栏的X按钮,就会将窗口关闭,而有些时候,需要修改这样的行为。...                                           QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)     在这里,显示了两个按钮对话框

1K10

PyQt4 - 关闭最小化问题

通过调用exit()方法或者销毁widget来终止事件循环,调用sys.exit()方法确保了程序可以明确的退出,也就是程序退出后会告知系统。...图1:simple 添加图标 应用程序的图标一般就是一个在程序标题栏左上角显示的小图片,下面的例子我们展示如何使用PyQt4来显示图标,同时引入一些新的方法。  1 #!...QPushButton(string text, QWidget parent = None)     参数text是在按钮上显示的文本,parent是按钮的父容器。  1 #!...图4:quit button 对话框     默认情况,如果我们点击了标题栏的X按钮,就会将窗口关闭,而有些时候,需要修改这样的行为。...                                           QtGui.QMessageBox.Yes, QtGui.QMessageBox.No)     在这里,显示了两个按钮对话框

1.4K10

快速熟悉 PyQt5 与 Eric6 的极速 GUI 开发

简单配置,让我们正式开始体验极速GUI开发 实例 建立项目 打开Eric6,菜单栏中选择项目-新建 在项目属性对话框中的项目名称中输入Hello,你会发现右下方的OK按钮不可用。...回到项目属性对话框可以看到项目文件夹已变成F:\Python\PyQt5\Hello,同时右下角的OK按钮已显示可用。...(注:信号/槽机制是PyQt独有的信号传递机制,使用非常方便) 点击工具栏的编辑信号/槽图标 鼠标移动到关闭控件上面,左键按拖拽处红色地线标志松开鼠标 弹出配置链接窗口,在该窗口中勾选显示从...点击菜单栏的开始-运行脚本(或直接按键盘F2键) 在弹出的运行脚本对话框直接OK OK即可看到我们刚在Qt设计师中设计的窗体,点击关闭按钮 弹出对话框中直接OK,即可关闭该程序...进一步完善程序 到现在我们没有编写一句代码即可实现了程序的显示与退出 接下来我们手动给确定按钮添加事件命令 在Eric6中的项目浏览器中找到HelloWindow.ui文件,右键点击该文件,弹出菜单中选择生成对话框代码

2K20

QPushButton 基本使用

这一部分将打算介绍一 PyQt 各种 Button 及相关类,并扩展 Button 的功能用法,让你能够打造自己的个性化 Button 。...以下是一个示例,展示了如何在按钮点击时显示一个消息框: from PyQt5.QtWidgets import QApplication, QMainWindow, QPushButton, QMessageBox...pressed-background-color: 设置按钮在按状态时的背景颜色。 hover-background-color: 设置鼠标悬停在按钮上时的背景颜色。...前景颜色属性: color: 设置按钮的前景(文本)颜色。 pressed-color: 设置按钮在按状态时的前景颜色。 hover-color: 设置鼠标悬停在按钮上时的前景颜色。...4、使用自定义按钮: 创建自定义按钮,您可以像使用普通按钮一样在应用程序中使用它。

49540

PyQT5基本功能

#无特殊注明,所有案例只修改第一个案例的对应部分 创建一个基本窗口: import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import *...# 继承QWidget,用户界面的基本控件,提供了基本的应用构造器 # 默认情况,构造器是没有父级的,没有父级的构造器被称为窗口(window) class Example(QWidget)...btn.sizeHint()为默认大小 btn.resize(btn.sizeHint()) # 设置坐标,以父元素左上角为原点 btn.move(50, 50) # 鼠标悬停在按钮...event参数中 # 改变控件的默认行为,就是替换掉默认的事件处理 def closeEvent(self, event): # 创建一个消息框 # 参数分别代表self,标题栏,对话框...,确认按钮,取消按钮,默认按钮 reply = QMessageBox.question(self, 'Message', "Are you sure to quit?"

23010

First PyQt

在下面的例子里,我们将展示我们如何PyQt5中显示应用图标。我们也将介绍一些新方法的使用。 #!...QPushButton(string text, QWidget parent = None) text参数是将显示在按钮中的内容。parent参数是一个用来放置我们按钮的组件。...qbtn = QPushButton('Quit', self) 在PyQt5中,事件处理系统由信号&槽机制建立。如果我们点击了按钮,信号clicked被发送。...第二个字符串是对话框上显示的文本。第三个参数指定了显示在对话框上的按钮集合。最后一个参数是默认选中的按钮。这个按钮一开始就获得焦点。返回值被储存在reply变量中。 ? 在这里我们测试一返回值。...屏幕上居中的窗口 下面的脚本展示我们如何把窗口居中显示到桌面窗口。 #!

1.7K30

micropython教程(Python集成开发环境)

本文旨在通过一个简单的demo,介绍基于Python3、PyQT5的环境开发桌面应用程序的一种方案,当然开发Python的桌面应用程序不止是PyQT 这一种方案,还可以使用Python自带的Tkinter...配置Eric 启动eric6,界面如下,可以看到中文汉化成功: 首次启动,会自动弹出对配置对话框提示让你配置信息,如果你错过了也没关系,从Eric6的应用程序界面菜单[设置-首选项]进入,具体配置如下...、文本显示的对应python类中的变量名为:pushButton、plainTextEdit 接着在左侧窗体视图的UI文件上右键选择生成对话框代码: 选择对话框上两个控件所需的响应事件保存...pyqtSlot() def on_pushButton_clicked(self): """ Slot documentation goes here. """ # 按钮...: 点击按钮: 5.

2.9K20

PyQt5编程基础 2.2 信号与槽函数-设置信号与槽函数

设置信号和槽对话框类Qdialog内置槽函数accept():关闭对话框,表示肯定的选择,例如“确定”reject():关闭对话框,表示否定的选择,例如“取消”close():关闭对话框将确定按钮与accept...()槽函数关联点击工具栏上的Edit Signals/Slots按钮鼠标点击选中确定按钮,按住鼠标左键拖动到窗体空白区域释放左键,弹出关联设置对话框左边选clicked,右边选accept(),然后点...Eric6创建项目项目下只有一个__init__.py文件选择窗体,编译编译查看文件上面红色框框中的两行代码就是刚刚建好的信号与槽的关联创建窗体业务逻辑类按照界面与业务逻辑分离且界面独立封装的方式定义一个类...代码如下:##与UI窗体类对应的业务逻辑类import sysfrom PyQt5.QtWidgets import QApplication, QDialogfrom Ui_Dialog import...form=QmyDialog() #创建窗体 form.show() sys.exit(app.exec_())运行myDialogmyDialog可以直接运行确定和退出两个按钮都可以正常使用

32120

Python应用03 使用PyQT制作视频播放器

视频播放利用了PyQT中的Phonon模块。此外,还有一个进程每隔一秒发出一个信号。窗口在接收到信号,更新视频播放的时间。这个应用的效果如下: ?...sys.exit()用来要求应用的主循环结束干净地退出程序。PyQT程序的开始和结尾都是类似的固定套路。关键就在于其间定义的QWidget对象。 我们自定义的Window类继承自QWidget。...表格、输入框、按钮都继承自QWidget。在一个Window对象中,我们还组合有QPushButton和QLabel这样的对象,分别代表一个按钮和一个文本框。...除了QWidget,PyQT还提供了常用的对话框,如: self.path = QtGui.QFileDialog.getOpenFileName(self, self.button.text()) 这里的...对话框将访问所选文件的路径。除了文件选择,对话框还有确认对话框、文件输入对话框、色彩对话框。这些对话框实现了不少常用的GUI输入功能。通过利用这些对话框,可以减少程序员从头开发的工作量。

3.4K90

PyQt5案例汇总(简洁版)

## 06关闭窗口 ```python # 本模块的功能: ''' TODO 要做的可多了 ''' # 关闭一个窗口最直观的方式就是点击标题栏的那个×,这个例子里面 # print(我们展示的是如何用程序关闭一个窗口...,parent参数是放在按钮上的组件 # 在我们的例子里面,这个参数是QWidget.应用中的组件都是一层一层(继承而来的) # 在这个层里,大部分的组件都有自己的父级,没有父级的组件,是顶级的窗口...(QCoreApplication.instance().quit) # 事件传递系统在PyQt5内建的single和slot机制里面.点击按钮之后,信号会被捕捉并给出既定的反应...) self.setWindowTitle("退出按钮练习") # 显示 self.show() yingyong = QApplication(sys.argv...) ex1 = Example() sys.exit(yingyong.exec_()) # 这里创建了一个点击之后就退出窗口的按钮 ``` ### 07消息盒子 ```python # 导入模块

1.9K30

Python使用PyQT制作视频播放器

视频播放利用了PyQT中的Phonon模块。此外,还有一个进程每隔一秒发出一个信号。窗口在接收到信号,更新视频播放的时间。这个应用的效果如下: ?...sys.exit()用来要求应用的主循环结束干净地退出程序。PyQT程序的开始和结尾都是类似的固定套路。关键就在于其间定义的QWidget对象。 我们自定义的Window类继承自QWidget。...表格、输入框、按钮都继承自QWidget。在一个Window对象中,我们还组合有QPushButton和QLabel这样的对象,分别代表一个按钮和一个文本框。...除了QWidget,PyQT还提供了常用的对话框,如: self.path = QtGui.QFileDialog.getOpenFileName(self, self.button.text()) 这里的...对话框将访问所选文件的路径。除了文件选择,对话框还有确认对话框、文件输入对话框、色彩对话框。这些对话框实现了不少常用的GUI输入功能。通过利用这些对话框,可以减少程序员从头开发的工作量。

2.6K20

Python应用03 使用PyQT制作视频播放器

视频播放利用了PyQT中的Phonon模块。此外,还有一个进程每隔一秒发出一个信号。窗口在接收到信号,更新视频播放的时间。这个应用的效果如下: ?...sys.exit()用来要求应用的主循环结束干净地退出程序。PyQT程序的开始和结尾都是类似的固定套路。关键就在于其间定义的QWidget对象。 我们自定义的Window类继承自QWidget。...表格、输入框、按钮都继承自QWidget。在一个Window对象中,我们还组合有QPushButton和QLabel这样的对象,分别代表一个按钮和一个文本框。...除了QWidget,PyQT还提供了常用的对话框,如: self.path = QtGui.QFileDialog.getOpenFileName(self, self.button.text()) 这里的...对话框将访问所选文件的路径。除了文件选择,对话框还有确认对话框、文件输入对话框、色彩对话框。这些对话框实现了不少常用的GUI输入功能。通过利用这些对话框,可以减少程序员从头开发的工作量。

94720

Python中的easygui入门

、查询学生信息或退出程序。...希望以上示例代码能帮助读者理解如何在实际应用场景中使用​​easygui​​库实现交互式操作。在实际开发中,可以根据需要进行适当的扩展和优化。...以下是 EasyGUI 的一些缺点:功能有限:EasyGUI 是一个轻量级库,主要专注于提供简单的对话框按钮和输入框等基本组件。相比于其他功能更为强大的 GUI 库,它的功能相对较有限。...这意味着在复杂的应用场景,你可能需要做很多的变通来实现你想要的效果。如果你需要更多灵活性和自定义性,可能需要考虑其他更强大的 GUI 库。...PyQtPyQt 是一个基于 Qt 库的 Python 绑定库,它提供了丰富的功能和灵活性,能够创建复杂的用户界面。

39020

Python应用03 使用PyQT制作视频播放器

视频播放利用了PyQT中的Phonon模块。此外,还有一个进程每隔一秒发出一个信号。窗口在接收到信号,更新视频播放的时间。这个应用的效果如下: ?...sys.exit()用来要求应用的主循环结束干净地退出程序。PyQT程序的开始和结尾都是类似的固定套路。关键就在于其间定义的QWidget对象。 我们自定义的Window类继承自QWidget。...表格、输入框、按钮都继承自QWidget。在一个Window对象中,我们还组合有QPushButton和QLabel这样的对象,分别代表一个按钮和一个文本框。...除了QWidget,PyQT还提供了常用的对话框,如: self.path = QtGui.QFileDialog.getOpenFileName(self, self.button.text()) 这里的...对话框将访问所选文件的路径。除了文件选择,对话框还有确认对话框、文件输入对话框、色彩对话框。这些对话框实现了不少常用的GUI输入功能。通过利用这些对话框,可以减少程序员从头开发的工作量。

1.3K30

python GUI库图形界面开发之PyQt5切换按钮控件QPushButton详细使用方法与实例

状态 含义 isDown() 提示按钮是否已按 isChecked() 提示按钮是否已经标记 isEnable() 提示按钮是否可以被用户点击 isCheckAble() 提示按钮是否为可标记的 setAutoRepeat...() 设置按钮是否在用户长按时可以自动重复执行 QAbstractButton提供的信号如下表 信号 含义 Pressed 当鼠标指针在按钮上并按左键时触发该信号 Released 当鼠标左键被释放时触发该信号...() 设置按钮是否已经被选中,如果设置True,则表示按钮将保持已点击和释放状态 toggle() 在按钮状态之间进行切换 setIcon() 设置按钮上的图标 setEnabled() 设置按钮是否可以使用...其规则是;想要实现快捷键为“Alt+D”,那么按钮的名字里有D这个字母,并且在D的前面加上“&”,这个字母D一般是按钮名称的首字母,而且在按钮显示时。...():在按钮状态之间进行切换 self.btn1.toggle() #点击信号与槽函数进行连接,这一步实现:在控制台输出被点击的按钮 self.btn1.clicked.connect

2.7K21

在全志H616核桃派开发板上部署PyQt5的信号与槽详解

这时候如果我们希望点击按键关闭当前窗口,那么就可以通过编辑它们的信号和槽来实现。...PyQt5中信号与槽特点: 一个信号可以发送给多个槽。 一个槽可以接收多个信号。...双击PushButton按钮,将按钮名称改成close: 接下来点击菜单栏编辑–编辑信息/槽 接下来注意:用鼠标点击按钮不放开,拖动到窗口空白的地方,然后再放手,松开如下图: 这时候会弹出一个设置对话框...-o window.py 打开window.py,添加主程序代码,添加完整代码如下: # -*- coding: utf-8 -*- # pyQT5 For WalnutPi from PyQt5...timer.timeout.connect(lambda:None)# Let the interpreter run each 100 ms sys.exit(app.exec_())#程序关闭时退出进程

7010

Python Qt GUI设计:窗口之间数据传递(拓展篇—5)

如果这个程序有多个窗口,那么还应该关心不同的窗口之间是如何传递数据的。 本篇博文首先给出一个例子,说明在一个窗口中不同控件之间的数据是如何传递的。...把多个参数写到一个窗口中,主窗口会显得很臃肿,所以一般是添加一个按钮,调用对话框,在对话框中进行参数的选择,关闭对话框时将参数值返回给主窗口。...PyQt提供了一些标准的对话框类,用于输入数据、修改数据、更改应用的设置等,常见的有QFileDialog、QInputDialog、QColorDialog、QFontDialog等。...通过示例,了解属性传参的方法,效果如下所示: 示例中,在主窗口中调用对话框有两种方法,单击“弹出对话框"按钮,在对话框的时间日期控件中选择日期,则会把所选中的日期返回到主窗口的lineText文本框控件中...通过 dialog.exec_()的返回值来判断用户单击的是Ok按钮还是Cancel按钮,然后做出下一步判断。

3K30
领券