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

如何修改pyqt5 messagebox以永久显示按钮上的快捷键

PyQt5中的QMessageBox是一个弹出对话框,用于显示消息和接收用户的输入。默认情况下,它只会在对话框上显示一个确定按钮。然而,可以通过自定义消息框的按钮和按钮上的快捷键来修改其行为。

要修改PyQt5的QMessageBox以永久显示按钮上的快捷键,可以通过创建一个自定义对话框类并重写它的事件处理函数来实现。以下是一种可能的实现方法:

代码语言:txt
复制
from PyQt5.QtWidgets import QMessageBox, QPushButton, QApplication, QVBoxLayout, QWidget, QShortcut
from PyQt5.QtCore import Qt, QEvent
from PyQt5.QtGui import QKeySequence

class CustomMessageBox(QMessageBox):
    def __init__(self, *args, **kwargs):
        super(CustomMessageBox, self).__init__(*args, **kwargs)

    def event(self, event):
        if event.type() == QEvent.KeyPress:
            # 获取按下的键
            key = event.key()
            
            # 遍历对话框上的所有按钮
            for button in self.buttons():
                # 获取按钮上的快捷键
                shortcut = button.shortcut().toString()

                # 判断按下的键是否与按钮上的快捷键相匹配
                if key == QKeySequence(shortcut).standard()[0]:
                    # 模拟按钮被点击
                    button.animateClick()

        # 保留原有事件处理
        return super(CustomMessageBox, self).event(event)

# 创建应用程序和主窗口
app = QApplication([])
window = QWidget()

# 创建自定义消息框
message_box = CustomMessageBox()
message_box.setWindowTitle("Custom MessageBox")
message_box.setText("This is a custom MessageBox.")

# 创建自定义按钮
ok_button = QPushButton("OK")
ok_button.setShortcut(Qt.Key_Enter)  # 设置快捷键为Enter

cancel_button = QPushButton("Cancel")
cancel_button.setShortcut(Qt.Key_Escape)  # 设置快捷键为Esc

# 将按钮添加到消息框中
message_box.addButton(ok_button, QMessageBox.AcceptRole)
message_box.addButton(cancel_button, QMessageBox.RejectRole)

# 创建垂直布局并将消息框添加到主窗口中
layout = QVBoxLayout()
layout.addWidget(message_box)
window.setLayout(layout)

window.show()
app.exec_()

在这个例子中,我们创建了一个名为CustomMessageBox的自定义消息框类,继承自QMessageBox类。在自定义消息框类中,我们重写了event方法来处理键盘按下事件。首先,我们获取按下的键,并遍历对话框上的所有按钮。然后,我们获取每个按钮上的快捷键,并与按下的键进行比较。如果按下的键与按钮上的快捷键相匹配,我们模拟按钮被点击。

在应用程序中,我们创建了一个自定义消息框实例,并添加了自定义的按钮。每个按钮都设置了快捷键,例如Enter和Esc。最后,我们将消息框添加到主窗口中,并显示应用程序。

注意:以上代码示例中的快捷键设置是针对示例自定义按钮的,您可以根据需要自定义设置按钮的快捷键。

这是一个示例的完善且全面的答案,提供了修改PyQt5消息框以永久显示按钮上的快捷键的方法,同时还包括了示例代码和解释。希望对您有帮助!

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

相关·内容

七个Python必备的GUI库,这次一定要学会!

GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。...Tkinter提供了各种小部件,例如标签,按钮,文本字段,复选框和滚动按钮等。 支持Grid(网格)布局,由于我们的程序大多数都是矩形显示,这样即使是复杂的设计,开发起来也变得简单些。...点击OK按钮,窗口消失。 06. PyGUI PyGUI是一个以简单API而闻名的GUI框架,减少Python应用与平台底层GUI之间的代码量。...轻量级的API,可以让你的应用程序运行起来更流畅,更快速。 同时还开源代码,跨平台项目。目前可在基于Unix的系统,Windows和Mac OS上运行。...允许应用程序在桌面,Web和终端上运行,无需修改代码。

4.5K20

七个Python必备的GUI库,这次一定要学会!

GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。...Tkinter提供了各种小部件,例如标签,按钮,文本字段,复选框和滚动按钮等。 支持Grid(网格)布局,由于我们的程序大多数都是矩形显示,这样即使是复杂的设计,开发起来也变得简单些。...点击OK按钮,窗口消失。 06. PyGUI PyGUI是一个以简单API而闻名的GUI框架,减少Python应用与平台底层GUI之间的代码量。...轻量级的API,可以让你的应用程序运行起来更流畅,更快速。 同时还开源代码,跨平台项目。目前可在基于Unix的系统,Windows和Mac OS上运行。...允许应用程序在桌面,Web和终端上运行,无需修改代码。

5.5K30
  • python GUI界面设计的那些事(二)

    python 可以通过 tkinter, pyqt5或者pyside2等工具库实现界面设计。 比如 tkinter 是 python 自带的工具库,不需要安装就可以使用。...---- 平常使用时,只需要掌握基本的输入控件(单行文本框,多行文本框), ? 输出显示控件(标签控件,列表框控件,消息弹窗) ? ? ? 以及按钮控件的基本使用,就能够解决绝大多数的界面设计了。...---- 弹窗,按钮,标签联动 from tkinter import * # tkinter的消息框是由tkinter.messagebox 单独提供的 # 所以导入的时候一定得加上一行import...') else: tkinter.messagebox.showinfo( '提示', '你已取消修改') # 创建按钮以及绑定更改内容的方法 button...建议使用界面设计工具,不过需要学习其它的GUI库,也就是我们后面要介绍的Qt,PyQt5或者PySide2。 好了,今天就到这里结束啦。 (全文完) ---- 欢迎转载,转载请注明出处!

    3.3K20

    七个Python必备的GUI库

    GUI(图形用户界面),顾名思义就是用图形的方式,来显示计算机操作的界面,更加方便且直观。...Tkinter提供了各种小部件,例如标签,按钮,文本字段,复选框和滚动按钮等。 支持Grid(网格)布局,由于我们的程序大多数都是矩形显示,这样即使是复杂的设计,开发起来也变得简单些。...点击OK按钮,窗口消失。 06. PyGUI PyGUI是一个以简单API而闻名的GUI框架,减少Python应用与平台底层GUI之间的代码量。...轻量级的API,可以让你的应用程序运行起来更流畅,更快速。 同时还开源代码,跨平台项目。目前可在基于Unix的系统,Windows和Mac OS上运行。...允许应用程序在桌面,Web和终端上运行,无需修改代码。

    4K30

    【Python篇】PyQt5 超详细教程——由入门到精通(终篇)

    工具栏通常位于窗口的顶部或侧面,用户可以通过工具栏上的按钮快速访问常用功能。 QAction 和工具栏按钮 工具栏上的每个按钮由 QAction 创建,并可以设置图标和提示文本。...工具栏(QToolBar)用于提供快速操作的按钮,可以与菜单栏中的功能保持一致。 状态栏(QStatusBar)用于显示当前状态信息或提示信息,还可以添加永久控件。...QWidget 容器 PyQt5 中的布局管理器必须被设置在某个控件(如 QWidget)上。...10.5 QFormLayout:表单布局 QFormLayout 是 PyQt5 中的表单布局管理器,它将控件以标签-控件对的形式排列,常用于创建输入表单。...但随着对 PyQt5 各种组件的了解,诸如按钮、文本框、标签等常见控件的使用渐渐得心应手。特别是在信号与槽机制的学习中,我们逐渐学会如何处理事件响应,让程序不仅能展示界面,还能与用户交互。

    1.5K12

    Python:Pyqt5相关 安装-应用-简单使用

    tkinter库: Python自带库,放一个我写的小demo 调用: from tkinter import * import tkinter.messagebox as messagebox 类:...('Message','hello,%s' % name) 类的部分不做释意了,就说一下思路,按照教程写了一个基础UI界面,Entry,然后按钮弹出提示框,如果有输入则提示框显示“Hello,str”,...(i)函数时,本意是这样,通过for循环,创建好9个按钮,都绑定input_One(i),执行函数时,每个传参应该都不一样,我想自动获取按键对应的编号,暂时没有找到函数获取。...当前判断ui.py是否存在,如果存在则不修改。但是不能够判断py是否为最新文件。...除去每次繁琐的配置修改。 下边是自己的写的一个Demo,按键显示。

    47820

    PyQt5入门教程

    1)添加文本 在左侧的“Widget Box”栏目中找到“Display Widgets”分类,将“Label”拖拽到屏幕中间的“MainWindow”画布上,你就获得了一个仅用于显示文字的文本框,如下图所示...3)添加按钮 使用同样的方法添加一个按钮(PushButton)并将其显示的文本改成“HelloWorld!”,如下图所示。 4)修改窗口标题 下面修改窗口标题。...实际上,要让这个按钮做点什么只需要增加一行代码就可以了。...在上一节,我们介绍了如何让按钮响应点击操作,但是并没有接受任何参数,而且只是在控制台输出。但是,上一节中说明了并不能通过正常的方式进行传参。...from functools import partial 1 然后我们把上一节中的按钮触发那行代码修改成下面这样。

    4.2K40

    Qt Designer基本控件介绍——Input Widgets(输入小部件)

    是一个集按钮和下拉选项于一体的控件,也称做下拉列表框 常用方法: count() :返回下拉选项集合中的数目 currentText() :返回选中选项的文本 itemText(i) :获取索引为 i...可显示多行文本内容,当文本内容超出控件显示范围时,可以显示水平和垂直滚动条 常用方法: toPlainText() : 返回多行文本框的文本内容。...允许用户选择一个整数值通过单击向上向下或者按键盘上的上下键来增加减少当前显示的值,当然用户也可以输入值。...并修改显示格式 self.dateEdit=QDateTimeEdit(QDateTime.currentDateTime(),self) self.dateEdit.setDisplayFormat...,发射信号,并传入快捷键序列 editingFinished: 快捷键编辑结束后发射该信号 具体示例可参考博客“实战PyQt5: 029-快捷键编辑控件QKeySequenceEdit”

    6.3K30

    PyQt5(designer)入门教程

    3)添加按钮 使用同样的方法添加一个按钮(PushButton)并将其显示的文本改成“HelloWorld!”,如下图所示。 4)修改窗口标题 下面修改窗口标题。...实际上,要让这个按钮做点什么只需要增加一行代码就可以了。...UI跟逻辑分离的好处就在这里,我们这次不用去管“HelloWorld.py”了,直接运行修改完的“main.py”。点击按钮,这次你会发现在控制台中有了我们预设的输出。...在上一节,我们介绍了如何让按钮响应点击操作,但是并没有接受任何参数,而且只是在控制台输出。但是,上一节中说明了并不能通过正常的方式进行传参。...既然使用partial传参,那么我们就要在程序(main.py)的头部加上下面这行。 from functools import partial 然后我们把上一节中的按钮触发那行代码修改成下面这样。

    2.6K10

    软件测试|超好用超简单的Python GUI库——tkinter(十六)

    前言我们在使用各种软件时,菜单是我们最常用的功能之一,菜单以可视化的方式将一系列的“功能选项卡”进行分组,并在每个分组下又“隐藏”了许多其他的“选项卡”。...unpost()移除弹出菜单yposition(index)返回 index 参数指定的菜单项的垂直偏移位置options参数介绍属性说明accelerator设置菜单项的快捷键,快捷键会显示在菜单项目的右边...方法一起使用,用来新增菜单项的子菜单项selectcolor指定当菜单项显示为单选按钮或多选按钮时选择中标志的颜色state定义菜单项的状态,可以是 normal、active 或 disabledonvalue...绑定一个执行函数,当点击菜单项的时候会显示一个消息对话框def menuCommand() : tkinter.messagebox.showinfo("拜仁慕尼黑","你正在使用拜仁慕尼黑")...,将菜单命令绑定在菜单按钮对象上menubtn.config(menu=filemenu)win.mainloop()运行程序,结果如下:图片总结本文主要介绍了tkinter菜单控件的使用,菜单控件可以使我们的程序更有层次感

    90830

    『开发技巧』PyQt5入门教程

    PyQt5的官方主页是www.riverbankcomputing.co.uk/news。是Riverbank Computing开发了PyQt5。 PyQt5以一套Python模块的形式来实现功能。...Figure: Simple 一个简单的应用图标 应用图标是一个常常显示在标题栏左上方角落的小图片。在下面的例子里,我们将展示我们如何在PyQt5中显示应用图标。我们也将介绍一些新方法的使用。...发送者是按钮,接受者是应用对象。 ? Figure: Quit button Message Box 默认的,如果我们点击了标题栏上的x按钮,QWidget会被关闭。又是我们希望修改这个默认动作。...代码中第一个字符串的内容被显示在标题栏上。第二个字符串是对话框上显示的文本。第三个参数指定了显示在对话框上的按钮集合。最后一个参数是默认选中的按钮。这个按钮一开始就获得焦点。...Figure: Message box 屏幕上的居中窗口 下面的脚本展示我们如何把窗口居中显示到桌面窗口。

    4.3K30

    【traits-traitsui-基础】-02-控件StrButton

    今天介绍两个常用控件,Str,Button,中文来说,就是字符串录入及按钮 Part 1:示例 提供一个界面,在输入框输入,点击按钮显示输入内容,如下图 运行结果 ?...Part 3:代码解读 整体代码分为3个部分 控件定义 事件定义:def 视图定义:View 导入所需模块 定义界面端的类 运行界面端 如何定义按钮点击相应事件?...定义一个函数def,函数名称必须是固定的,def _控件名称_fired(self): 如何获取Str控件中录入的值?...self.控件变量名,本示例中:self.input 录入提示:tooltip属性,鼠标移动到控件位置,会显示提示 加粗强调:emphasized 关于Item类的其它属性可以查看其源代码 源代码查看:...我这里使用的是Eclipse方式,快捷键为F12或者ctrl加鼠标左键 查看keymap中显示的有些不能用或者没有显示,可以百度上搜索一下并自己尝试一下 快捷键查看keymap ?

    63420

    【愚公系列】2023年11月 Winform控件专题 Button控件详解

    设置Button控件的属性可以设置Button控件的Text属性,指定显示在按钮上的文本。还可以设置BackColor和ForeColor属性,分别指定按钮的背景颜色和前景颜色。...;此代码将使按钮上的图像位于按钮文本的左侧。...另外需要注意的是,当UseMnemonic属性为true时,如果文本中有多个字符可作为快捷键,在显示时只会显示第一个。...如果想要显示其他字符作为快捷键,可以使用"&"符号来指定,例如:将文本设置为"打开(&O)",则"O"就会作为快捷键显示。...如果用户名和密码匹配,则显示“登录成功”的提示信息;否则显示“用户名或密码错误”的提示信息。这个示例展示了Button控件的基本用法,并说明了如何将它与其他控件结合使用来实现具体的功能。

    1.8K12

    『Python动手学』PyQt5入门教程

    一个简单的应用图标 应用图标是一个常常显示在标题栏左上方角落的小图片。在下面的例子里,我们将展示我们如何在PyQt5中显示应用图标。我们也将介绍一些新方法的使用。 #!...qbtn = QPushButton('Quit', self) 我们创建了一个按钮。按钮是一个QPushButton类的实例。构造方法的第一个参数是显示在button上的标签文本。...发送者是按钮,接受者是应用对象。 Message Box 默认的,如果我们点击了标题栏上的x按钮,QWidget会被关闭。又是我们希望修改这个默认动作。...代码中第一个字符串的内容被显示在标题栏上。第二个字符串是对话框上显示的文本。第三个参数指定了显示在对话框上的按钮集合。最后一个参数是默认选中的按钮。这个按钮一开始就获得焦点。...屏幕上的居中窗口 下面的脚本展示我们如何把窗口居中显示到桌面窗口。 #!

    3K20

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

    :按钮、文本显示的对应python类中的变量名为:pushButton、plainTextEdit 接着在左侧窗体视图的UI文件上右键选择生成对话框代码: 选择对话框上两个控件所需的响应事件后保存...: 加上main方法 修正引用的ui资源路径:把这里的 from .Ui_Test import Ui_dialog 那个点.去掉,否则会提示找不到这个模块 修改按钮响应函数,改变文本控件显示的内容 修改文本内容改变响应函数...#显示在屏幕上 dialog.show() #系统exit()方法确保应用程序干净的退出 #的exec_()方法有下划线。...因此,exec_()代替 sys.exit(app.exec_()) 然后点击Eric6应用的菜单:项目-属性,配置主脚本为我们这个Test.py: 最后,通过菜单或者快捷键Ctrl+...最后打包出来的exe有35MB大小… 因为把QT核心的dll文件打包在一起了,否则在没有安装python以及PyQt的电脑上无法运行的。

    3K20

    用Python制作一个打字训练小工具

    二、基本思路 使用 PyQT5 开发 GUI,实现显示句子并让用户输入,然后将输入的内容和给出的句子进行比对,同时记录所用的时间,最后将正确率输出来。...2.使用方法 (1)第一种方法 第一步,在 QtDesigner 中点击 “Edit Signals/Slots”,然后左键点击按钮后将鼠标拖到另一个 Label 上: 第二步,在弹出的设置框中选择具体的方法及功能...,且直接在这个 py 文件中修改的话,那么之后要更新界面之类的就不会不方便了,所以最好的方法是继承 Ui_Form 类,然后在继承类中添加修改。...0) self.lable.setGraphicsEffect(op) 3.判断输入内容 这一功能的实现需要在点击“提交”按钮时获取输入框中的内容,再和给出的文本进行对比,最后将结果返回显示出来。...对于我这种懒人来说,点击按钮这种操作都是费力的,所以最好加入一个快捷键,这样就方便多了,可以使用如下方法设置: # 设置快捷键 self.submit_btn.setShortcut('ctrl+e')

    85000

    Qt Designer快速入门(python GUI 可视化界面搭建)

    在菜单栏中选择“窗体”→“预览”,或者按“Ctrl+R”快捷键,就可以看到窗口的预览效果了。 工具箱 可以从Buttons栏拖拽一个Push Button按钮到主窗体,如图所示。...shortcut,快捷键。 3、查看UI文件 采用Qt designer 工具设计的界面文件默认为.ui文件,描述了窗口中控件的属性列表和布局显示。....ui 文件里面包含的内容是按照XML(可扩展标记语言)格式处理的。 将上节的一个按钮示例保存一下,用pycharm打开查看,显示内容如下: 按钮的设置参数与使用Qt designer打开.ui文件时显示的信息是一致的。...py文件: 5、界面与逻辑分离 我们通过之前的内容学会了如何制作.ui文件,以及如何把.ui文件转换成.py文件。

    2.5K40

    Python桌面图形程序美化的方法论

    会导致一种“初遇时惊艳,永久后坑多”的状态。 模块提供的都是原生组件 为了便于理解,我们在这里把桌面图形界面的开发(以PyQt5为例)和Web前端开发进行一下不严谨的关联对应。 ?...在不引入任何 CSS 和 JavaScript 的情况下,HTML 中编写的任何标签,在浏览器中显示的都是最原始的形状和样式。...> 上述 HTML 代码在浏览器中将会显示为如下图所示: ?...下图是比较知名的前端 UI 库 ElementUI 提供的按钮组件: ? 通过审查元素,可以看到,其用 CSS 对按钮元素进行了很多改造: ?...如何解决,州的先生根据实际经验给出如下的建议: 有一个好的设计原型 不是要大家去兼修 UI 设计,而是在构建一个图形界面之前,对程序的布局,结构有一个清晰明确的原型。

    2.4K31
    领券