pyqt5学习之QPushButton

  1. QPushButton继承于基类QAbstractButton;QAbstractButton的方法QPushButton都可以用;用来给用户点击,来完成某种动作的控件

案例:

  1. 控件建立
  2. 扁平化
  3. 简单菜单建立
  4. 右击菜单建立
from PyQt5.Qt import *
import sys

# *************控件建立***************开始
# app = QApplication(sys.argv)
#
# window = QWidget()
#
# window.setWindowTitle("按钮的功能")
# window.resize(500, 500)
#
# # btn = QPushButton(window)
# # btn.setParent(window)  # 设置父类
# # btn.setText("xxx")  # 添加文本
# # btn.setIcon(QIcon("dp.png"))  # 添加图片
# btn = QPushButton(QIcon('dp.png'),'按钮',window) # 设置方法二
#
# window.show()
# sys.exit(app.exec_())
# *************控件建立***************结束


# *************扁平化***************开始
# app = QApplication(sys.argv)
#
# window = QWidget()
#
# window.setWindowTitle("按钮的功能")
# window.resize(500, 500)
#
# btn = QPushButton(QIcon('dp.png'),'按钮',window)
# btn.setFlat(True)  # 设置扁平化
# print(btn.isFlat())
#
# window.show()
# sys.exit(app.exec_())
# *************扁平化***************结束


# *************简单菜单***************开始
# app = QApplication(sys.argv)
#
# window = QWidget()
#
# window.setWindowTitle("按钮的功能")
# window.resize(500, 500)
#
# btn = QPushButton(QIcon('dp.png'),'按钮',window)
#
# # 1.设置一个菜单对象
# menu = QMenu(window)
#
# # 2.添加行为动作;分割线
# # new_action = QAction() # 添加一个行为动作
# # new_action.setText("新建") # 设置文本
# # new_action.setIcon(QIcon("dp.png")) #添加图片
# new_action = QAction(QIcon("dp.png"), "新建", menu)  # 添加行为方式二
# new_action.triggered.connect(lambda :print("新建文件"))
#
# open_action = QAction(QIcon("dp.png"), "打开", menu)
# open_action.triggered.connect(lambda :print("打开文件"))
#
# exit_action = QAction("退出", menu)
# exit_action.triggered.connect(lambda :print("退出程序"))
#
# file_action = QAction("Python-GUI编程-PyQt5")
#
# #添加子菜单
# open_recent_menu = QMenu(menu)
# open_recent_menu.setTitle("最近打开")
#
# # 3.将动作行为,子菜单添加到菜单中
# menu.addAction(new_action) #添加行为
# menu.addAction(open_action)
# open_recent_menu.addAction(file_action)
# menu.addMenu(open_recent_menu)  #添加子菜单
# menu.addSeparator()  # 添加分割线
# menu.addAction(exit_action)
#
# # 4.将菜单设置到按钮中
# btn.setMenu(menu)
#
# window.show()
# sys.exit(app.exec_())
# *************简单菜单***************结束



# *************右击菜单方法一***************开始
# class Window(QWidget):
#     def contextMenuEvent(self, evt):
#         print("默认上下文菜单调用这个方法")
#         # 1.添加需要展示的菜单
#         menu = QMenu(self)
#
#         # 2.添加菜单内容
#         # 2.1添加子菜单
#         open_recent_menu = QMenu(menu)
#         open_recent_menu.setTitle("最近打开")
#
#         # 2.2添加行为动作;分割线
#         new_action = QAction(QIcon("dp.png"), "新建", menu)
#         new_action.triggered.connect(lambda: print("新建文件"))
#
#         open_action = QAction(QIcon("dp.png"), "打开", menu)
#         open_action.triggered.connect(lambda: print("打开文件"))
#
#         exit_action = QAction("退出", menu)
#         exit_action.triggered.connect(lambda: print("退出程序"))
#
#         file_action = QAction("Python-GUI编程-PyQt5")
#
#         menu.addAction(new_action)
#         menu.addAction(open_action)
#         open_recent_menu.addAction(file_action)
#         menu.addMenu(open_recent_menu)
#         menu.addSeparator()
#         menu.addAction(exit_action)
#
#         # 3.展示菜单,会传递一个对象:Qpoint:展示在那个点
#         # menu.exec_(QPoint(100, 100) # Qpoint:展示在那个点(先对于桌面)
#         menu.exec_(evt.globalPos())  # 全局位置:窗口
#         # menu.exec_(evt.pos())  # 局部位置:桌面
#
# # 1. 创建一个应用程序对象
# app = QApplication(sys.argv)
#
# # 2. 控件的操作
# # 2.1 创建控件
# window = Window()
# # 2.2 设置控件
# window.setWindowTitle("按钮的功能")
# window.resize(500, 500)
#
#
# btn = QPushButton(window)
# btn.setParent(window)
# btn.setText("xxx")
# btn.setIcon(QIcon("dp.png"))
#
# window.show()
#
# sys.exit(app.exec_())

# *************右击菜单方法一***************结束


# *************右击菜单方法二***************开始
# # 1. 创建一个应用程序对象
# app = QApplication(sys.argv)
#
# # 2. 控件的操作
# # 2.1 创建控件
# window =QWidget()
# # 2.2 设置控件
# window.setWindowTitle("按钮的功能")
# window.resize(500, 500)
#
# btn = QPushButton(window)
# btn.setParent(window)
# btn.setText("xxx")
# btn.setIcon(QIcon("dp.png"))
#
# def show_menu(point):
#     # 1.设置展示菜单
#     menu = QMenu(window)
#
#     # 2.添加菜单控件
#     open_recent_menu = QMenu(menu)
#     open_recent_menu.setTitle("最近打开")
#
#     # 添加行为动作;分割线
#     new_action = QAction(QIcon("xxx.png"), "新建", menu)
#     new_action.triggered.connect(lambda: print("新建文件"))
#
#     open_action = QAction(QIcon("xxx.png"), "打开", menu)
#     open_action.triggered.connect(lambda: print("打开文件"))
#
#     exit_action = QAction("退出", menu)
#     exit_action.triggered.connect(lambda: print("退出程序"))
#
#     file_action = QAction("Python-GUI编程-PyQt5")
#
#     menu.addAction(new_action)
#     menu.addAction(open_action)
#     open_recent_menu.addAction(file_action)
#     menu.addMenu(open_recent_menu)
#     menu.addSeparator()
#     menu.addAction(exit_action)
#
#     # point
#     # dest_point = window.mapToGlobal(point) # 局部点映射到桌面
#     # menu.exec_(dest_point)
#     menu.exec_(point) # 桌面位置点
#
# window.setContextMenuPolicy(Qt.CustomContextMenu)  # 自定义上下文菜单策略
# window.customContextMenuRequested.connect(show_menu) # 信号
#
# # 2.3 展示控件
# window.show()
#
# # 3. 应用程序的执行, 进入到消息循环
# sys.exit(app.exec_())

# *************右击菜单方法二***************结束
View Code

 

posted @ 2020-03-16 16:01  墨色无墨  阅读(629)  评论(0编辑  收藏  举报