1、QPushButton()的特定功能:菜单的设置,当我们点击按钮时,会显示一系列的下拉菜单。

2、当用户点击行为会像外界会发出信号。

import sys
from PyQt5.Qt import *app = QApplication(sys.argv)
window = QWidget()btn = QPushButton("xxx", window)# 菜单的设置
# 首先创建一个menu对象
menu = QMenu()
# menu后可以添加行为、分割线、图标、子菜单等,可以进入类中查看方法
# 子菜单 最近打开
# 行为动作 新建 打开 分割线 退出
# 方案一
# new_action = QAction()
# new_action.setText("新建")
# 方案二
new_action = QAction("新建", menu)
# 监听行为的信号
new_action.triggered.connect(lambda: print("新建文件"))
open_action = QAction("打开", menu)
open_action.triggered.connect(lambda: print("打开文件"))
exit_action = QAction("退出", menu)
exit_action.triggered.connect(lambda:print("退出文件"))# 子菜单
oprn_recent_menu = QMenu(menu)
oprn_recent_menu.setTitle("最近打开")
file_action = QAction("python-pyqt")
oprn_recent_menu.addAction(file_action)menu.addAction(new_action)
menu.addAction(open_action)
menu.addSeparator()
menu.addMenu(oprn_recent_menu)menu.addAction(exit_action)# 给按钮后添加菜单
btn.setMenu(menu)
# 菜单的获取
print(btn.menu())window.setWindowTitle("按钮的功能")
window.resize(500, 500)window.show()
# 菜单的显示
menu.show()
sys.exit(app.exec_())

3、边框扁平化:直接调用setFlat(bool)方法。当按钮设置为扁平状,则其没有背景颜色。

btn.setStyleSheet("background-color: red")
# 将按钮设置为扁平状
btn.setFlat(True)

4、默认按钮的处理:(主要应用)

例如:打开按钮被设置为默认的(带蓝色边框);

自动设置为默认按钮和设置为默认按钮的区别:

# 将按钮设置为自动默认按钮
# 只有当按钮被点击一次之后,他才会是默认按钮
btn.setAutoDefault(True)
print(btn.autoDefault())
# 不需要点击该按钮,一直是自动默认按钮
btn.setDefault(True)

5、右键菜单:通过不同的信号监听不同的消息,做出不同的反应。

右键菜单:当用户点击右键所弹出的菜单。点击右键之后会默认调用contextMenuEvent()对象方法。需要重写该方法,可以在这个方法中调用菜单。

将菜单展示在某一个指定位置(给定一个点),需要获取鼠标点击的相对于全局的坐标位置。将局部坐标映射到全局坐标:mapToGlobal()。

import sys
from PyQt5.Qt import *class Window(QWidget):def contextMenuEvent(self, ContextMenuEvent):print("调用菜单")# 菜单的设置# 首先创建一个menu对象menu = QMenu(self)new_action = QAction("新建", menu)# 监听行为的信号new_action.triggered.connect(lambda: print("新建文件"))open_action = QAction("打开", menu)open_action.triggered.connect(lambda: print("打开文件"))exit_action = QAction("退出", menu)exit_action.triggered.connect(lambda: print("退出文件"))# 子菜单oprn_recent_menu = QMenu(menu)oprn_recent_menu.setTitle("最近打开")file_action = QAction("python-pyqt")oprn_recent_menu.addAction(file_action)menu.addAction(new_action)menu.addAction(open_action)menu.addSeparator()menu.addMenu(oprn_recent_menu)menu.addAction(exit_action)menu.exec_(ContextMenuEvent.globalPos())app = QApplication(sys.argv)
window = Window()btn = QPushButton("xxx", window)
btn.setStyleSheet("background-color: red")window.setWindowTitle("按钮的功能")
window.resize(500, 500)def show_menu(point):menu = QMenu(window)new_action = QAction("新建", menu)# 监听行为的信号new_action.triggered.connect(lambda: print("新建文件"))open_action = QAction("打开", menu)open_action.triggered.connect(lambda: print("打开文件"))exit_action = QAction("退出", menu)exit_action.triggered.connect(lambda: print("退出文件"))# 子菜单oprn_recent_menu = QMenu(menu)oprn_recent_menu.setTitle("最近打开")file_action = QAction("python-pyqt")oprn_recent_menu.addAction(file_action)menu.addAction(new_action)menu.addAction(open_action)menu.addSeparator()menu.addMenu(oprn_recent_menu)menu.addAction(exit_action)# 使用映射的方法将局部坐标点转换为全局点dest_point = window.mapToGlobal(point)menu.exec_(dest_point)# 自定义上下文菜单,会发射一个信号
window.setContextMenuPolicy(Qt.CustomContextMenu)
window.customContextMenuRequested.connect(show_menu)window.show()
sys.exit(app.exec_())

addSeparator()添加分割线函数。

QPushButton菜单设置相关推荐

  1. 企业微信_新建自建H5小程序应用及主页与菜单设置

    文章目录 一.新建自建H5小程序应用 1. 登录企微管控台 2. 登录登录手机企微 3. 应用管理 4. 创建应用 5. 效果图 二.主页与菜单设置 2.1. 应用主页 2.2. 菜单设置 2.3. ...

  2. 右键计算机菜单,右键菜单设置方法步骤【图文】

    鼠标使用的时间越长,右键菜单就会随着软件的增多,变得越来越长,这不仅让我们在使用右键时,找到想要点击的选项变得不那么方便,也会让电脑运行变得缓慢.我们常常会清理电脑系统的缓存垃圾,鼠标的右键就像电脑的 ...

  3. win7计算机菜单,教您win7右键菜单设置方法

    使用win7电脑的过程中鼠标的右键菜单虽然使用率不是很高,但是在创建一些程序完成一些系统操作的时候我们还是会用得到右键菜单.有用户就想对win7右键菜单进行设置,怎么操作?下面,小编给大家讲解win7 ...

  4. html文件如何设置右键菜单,windows系统使用小技巧,创建属于自己的右键新建菜单-右键菜单设置...

    在计算机的使用过程中,用户会经常的使用一些文件件,而为了用户的方便,Windows系统在桌面的右键快捷菜单设置了一些内置的文件类型,比如:"WinZip"."文本文档&q ...

  5. Php公众号自定义菜单设置,教你设置微信公众号自定义菜单!,来看看吧

    很多微信公众号都添加了自定义菜单,订阅用户点击菜单可以跳转到历史文章,或者会即刻发送一条信息等等.那么这是怎么做到的呢?别着急,下面就告诉你详细的设置方法. 工具/材料 小蚂蚁Page页面模板 微信公 ...

  6. Java Excel省市区级联菜单设置

    主要解决使用POI写excel,并且添加数据校验,以及省市区级联菜单设置,分Excel2003与Excel2007两个版本. 关于POI与Excel之间的一些关系,以及设计方面的一些思想说明: Jav ...

  7. Electron教程(六)应用菜单设置例子

    Electron教程(六)应用菜单设置例子 Electron教程(一)什么是 Electron,由来.适用场景 和 Electron 的环境搭建 Electron教程(二)启动过程:主进程,渲染进程是 ...

  8. 鼠标右键编辑html文档,鼠标右键菜单设置方法【详细步骤】

    我们都知道在我们的电脑操作系统中,我们的鼠标右键具有很强大的功能,右键里面会有很多菜单,这样很多操作我们都可以直接右键进行,更加方便,但是有时候我们会发现右键菜单里面内容特别多,有的我们根本用不到,对 ...

  9. 计算机的菜单设置方法,Win7开始菜单设置的方法

    说起开始菜单大家并不会感到陌生,因为它就在系统桌面的最下面.虽然说很常见,但是很多用户却不知道怎么设置它,那么Win7开始菜单要怎么设置呢?不知道的朋友赶紧看看小编整理的Win7开始菜单设置的方法吧! ...

最新文章

  1. MacBook如何用Parallels Desktop安装windows7/8
  2. Spring Cloud构建微服务架构:分布式服务跟踪(整合logstash)【Dalston版】
  3. Android中自定义View的研究 -- 在XML中引用自定义View
  4. 利用WDS实现零接触部署Windows 7 VHD
  5. 系统性能提升利刃 | 缓存技术使用的实践与思考
  6. 电影《姜子牙》要被改编成游戏了 期待吗?
  7. (十八)密度聚类DBSCAN
  8. 【PAT】1009. 说反话 (20)
  9. 使用c语言函数的小结,C语言函数指针小结(1)
  10. 服务器清洗项目,服务器带电清洗流程和注意事项
  11. 物联网感知-光纤光栅传感器技术
  12. linux WIFI命令iwlist、iwconfig、iwpriv
  13. 【SAP-CO】成本中心会计报表
  14. Telnet + VTY(虚拟终端Virtual Teletype Terminal)远程管理路由器和交换机
  15. JavaWeb 页面跳转方式连接数据库
  16. leetcode406:const、、static
  17. .NetCore——Autofac使用
  18. 人脸识别系统(一)环境搭建
  19. 命令行 笔记本键盘禁用_如何在 Ubuntu 20.04 上禁用坞站(dock) | Linux 中国
  20. Google Android开发入门与实战

热门文章

  1. CentOS7和CentOS8 FreeSWITCH 1.10.7 简单图形化界面--目录
  2. 幼儿园课件软件测试,幼儿园大班测试题
  3. 【海报生成网站】最新设计海报生成器网站项目源码
  4. 换新手机了,如何从安卓机转到苹果?步骤示范跟着做!
  5. RJ45数据连接器行业现状调研及趋势分析报告
  6. python execjs模块_如何使用python的execjs模块运行javascript的自调用函数
  7. zoj 3734 LIKE vs CANDLE
  8. 一篇文章概括——2021 不容错过的后端技术趋势(强烈推荐)
  9. 难解的AIoT焦虑,华为是否在准备一剂特效药存在?
  10. 写给数据分析师们的求职攻略