Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python如何从QDialog中打开弹出的QMainWindow

Python如何从QDialog中打开弹出的QMainWindow
EN

Stack Overflow用户
提问于 2014-03-05 10:43:49
回答 3查看 3.1K关注 0票数 2

我正在从事一个项目,其中我有一个与Python接口链接的数据库(我使用Qt设计器进行设计)。我希望主窗口(QMainWindow)中有一个删除按钮,当我按下它时,它会打开一个弹出(QDialog),上面写着

您确定要删除此项目吗?

但我不知道该怎么做。

谢谢你的帮助!

EN

回答 3

Stack Overflow用户

发布于 2014-03-05 10:47:44

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def button_click():
    dialog = QtGui.QMessageBox.information(self, 'Delete?', 'Are you sure you want to delete this item?', buttons = QtGui.QMessageBox.Ok|QtGui.QMessageBox.Cancel)

将此函数绑定到单击事件按钮。

票数 2
EN

Stack Overflow用户

发布于 2014-03-05 12:35:45

假设Qt设计器ui有一个名为"MainWindow“的主窗口和一个名为"buttonDelete”的按钮。

第一步是设置主窗口类,并将按钮的单击信号连接到处理程序:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from PyQt4 import QtCore, QtGui
from mainwindow_ui import Ui_MainWindow

class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.setupUi(self)
        self.buttonDelete.clicked.connect(self.handleButtonDelete)

接下来,需要向处理信号并打开对话框的MainWindow类添加一个方法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    def handleButtonDelete(self):
        answer = QtGui.QMessageBox.question(
            self, 'Delete Item', 'Are you sure you want to delete this item?',
            QtGui.QMessageBox.Yes | QtGui.QMessageBox.No |
            QtGui.QMessageBox.Cancel,
            QtGui.QMessageBox.No)
        if answer == QtGui.QMessageBox.Yes:
            # code to delete the item
            print('Yes')
        elif answer == QtGui.QMessageBox.No:
            # code to carry on without deleting
            print('No')
        else:
            # code to abort the whole operation
            print('Cancel')

这使用一个内置的QMessageBox函数来创建对话框。前三个参数设置父、标题和文本。下面两个参数设置显示的按钮组,加上默认按钮(最初突出显示的按钮)。如果您想使用不同的按钮,可用的按钮可以找到这里

要完成该示例,只需编写一些代码即可启动应用程序并显示窗口:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if __name__ == '__main__':

    import sys
    app = QtGui.QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())
票数 2
EN

Stack Overflow用户

发布于 2018-04-22 21:30:45

对于qt5.6,我也得到了相同的错误

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
TypeError: question(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.StandardButtons(QMessageBox.Yes|QMessageBox.No), defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton): argument 1 has unexpected type 'Ui_MainWindow'

因此,我在下面的代码中将self更改为None,它可以工作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def handleButtonDelete(self):
    answer = QtGui.QMessageBox.question(
        None, 'Delete Item', 'Are you sure you want to delete this item?',
        QtGui.QMessageBox.Yes | QtGui.QMessageBox.No |
        QtGui.QMessageBox.Cancel,
        QtGui.QMessageBox.No)
    if answer == QtGui.QMessageBox.Yes:
        # code to delete the item
        print('Yes')
    elif answer == QtGui.QMessageBox.No:
        # code to carry on without deleting
        print('No')
    else:
        # code to abort the whole operation
        print('Cancel')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22206472

复制
相关文章
Qt入门系列(二)
选中mainWindow.cpp右键->在Explor中显示->粘贴进来(显示包含的目录)
用户9831583
2022/06/16
2K0
Qt入门系列(二)
QT从控件部分知识点整理
2.设置可以停靠的区域,例如:只能停靠在左和右 3.设置工具栏是否可以浮动,即工具栏要么停靠在左边,要么停靠在右边,一撒手就立刻回去了 4.设置移动:如果传入一个false,则表示该工具栏无法拖拽移动
大忽悠爱学习
2021/11/15
1.1K0
QT Creator 快速入门教程 读书笔记(二)
一 窗口部件 基础窗口部件QWidget类是所有用户界面对象的基类,窗口和控件都是直接或间接继承自 QWidget,下面我们来看一个很简单的例子: 窗口部件(Widget)简称部件,是QT中建立界面的
用户1198337
2018/01/19
1.3K0
QT Creator 快速入门教程 读书笔记(二)
python pyqt5 QDialog
QDialog/QMessageBox,QFileDialog,QFontDialog,QInputDialog
用户5760343
2019/07/05
8860
『PyQt5-基础篇』| 01 简单的基础了解
虫无涯
2023/08/25
4090
python中如何打开csv文件_python如何读取csv文件
python如何读取csv文件,我们这里需要用到python自带的csv模块,有了这个模块读取数据就变得非常容易了。
全栈程序员站长
2022/09/16
7.9K0
python中如何打开csv文件_python如何读取csv文件
PyQt5的主窗口QMainWindow简介
看过上一篇我们知道,在PyQt5中了,所有的控件都是继承自。在桌面应用当中,我们常用的软件都会包含一个主窗口。主窗口就是承载所有控件的一个窗体。在PyQt5当中常用的主窗体有两种QMainWindow和QDialog。当然这两个也是继承自QWidget类。因为他们都继承自这个类,所以这三个类都是可以用来创建主窗口的,可以直接使用,也可以继承后再使用。
星星在线
2019/05/28
4K0
Qt界面编程:窗口传值方式
1、问题   一个这样的场景:主窗口界面有一个菜单项,点击该菜单项弹出一个对话框。点击对话框上的测试按钮,显示主窗口类中的一个字符串成员的内容。这就是整个窗口传值的需求描述。如何解决呢?首先想到的解决方法自然是使用Qt自带的signal/slot机制。即首先发信号给父窗口,父窗口接到信号执行槽函数发送一个携带所需数据的信号给子窗口。但是疑问来了:要在子窗口中接收到父窗口的信号必须进行signal和slot的绑定。这需要主窗口类的定义(1)。担心头文件的递归包含,我们只好再想另外一个方法。直接在子窗口中利用指
24K纯开源
2018/01/18
3K0
PyQt5 基本窗口控件(按钮类/对话框类)
learn from 《PyQt5 快速开发与实战》 https://doc.qt.io/qtforpython/index.html https://www.riverbankcomputing.com/static/Docs/PyQt5
Michael阿明
2022/05/10
1.1K0
PyQt5 基本窗口控件(按钮类/对话框类)
C/C++ Qt 自定义Dialog对话框组件应用
在上一篇博文 《C/C++ Qt 标准Dialog对话框组件应用》 中我给大家演示了如何使用Qt中内置的标准对话框组件实现基本的数据输入功能。
微软技术分享
2022/12/23
7500
C/C++ Qt 自定义Dialog对话框组件应用
C/C++ Qt 自定义Dialog对话框组件应用
在上一篇博文 《C/C++ Qt 标准Dialog对话框组件应用》 中我给大家演示了如何使用Qt中内置的标准对话框组件实现基本的数据输入功能。
微软技术分享
2022/12/28
6430
C/C++ Qt 自定义Dialog对话框组件应用
qdialog 返回值_python-PyQt QDialog返回响应是或否
confirmation_dialog = uic.loadUiType(“ui\confirmation_dialog.ui”)[0]
全栈程序员站长
2022/07/31
3710
PyQT模块、类、控件介绍
最近在搞一些基于PyQT的开发,开发过程中一直对PyQT相关模块、类、控件比较模糊,于是花了一些力气,去收集和整理了一下PyQT的一些基础,希望对大家有帮助!
python与大数据分析
2023/09/03
6650
PyQT模块、类、控件介绍
QMainWindow和QAction
QMainWindow是Qt 框架带来的一个预定义好的主窗口类。一个主窗口一般都是由下图所示部分组成。
zy010101
2020/04/08
7000
QMainWindow和QAction
QtreeWidget_遍历qtreewidget
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/10
1K0
QtreeWidget_遍历qtreewidget
[PyQt Tutorial]7.QDialog 类
https://www.tutorialspoint.com/pyqt/pyqt_introduction.htm
bsbforever
2020/08/19
4030
[PyQt Tutorial]7.QDialog 类
Python 图形界面框架 PyQt5 使用指南!
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
快学Python
2021/12/13
7.1K0
Python 图形界面框架 PyQt5 使用指南!
PyQt5-基本控件| 主窗口的类型、创建以及代码如何实现?
虫无涯
2023/10/24
4360
Qt Creator和VS2010中添加槽信号_差异与详解
2.点击mainwindow打开设计窗体在窗体上添加一个PushButton。点击右键先把转到槽
战神伽罗
2019/07/24
2.2K0
Qt Creator和VS2010中添加槽信号_差异与详解
点击加载更多

相似问题

PY Qt从QDialog打开QMainWindow

12

如何在QDialog中显示QMainWindow

327

打开QMainWindow后从静态函数运行QDialog对象

10

如何从QDialog访问QMainWindow中的小部件

113

如何从QMainWindow刷新/更新/重绘QDialog?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文