zoukankan      html  css  js  c++  java
  • PyQt5Day09--按钮QPushButton+子类QCommandLinkButton

    1、QPushButton简介

      用来给用户点击,来完成某种动作的控件——一般是矩形

      比如:登录按钮,注册按钮,关闭按钮......等等

      继承QAbstractButton

    2、QPushButton——构造函数

    (1)框架

    (2)操作

    1 btn = QPushButton(QIcon('xxx.png'),'xxx',window) # 实现以下功能
    2 # btn.setParent(window)
    3 # btn.setText("xxx")
    4 # btn.setIcon(QIcon('xxx.png'))

    3、QPushButton——菜单设置

    (1)框架

      QMenu()继承QWidget

    (2)操作:菜单添加行为动作,菜单添加子菜单,子菜单添加行为动作,构造函数

     1 # *******************菜单设置**********************开始
     2 import sys
     3 from PyQt5.Qt import *
     4 
     5 app=QApplication(sys.argv)
     6 
     7 window=QWidget()
     8 window.setWindowTitle("菜单设置")
     9 window.resize(500,500)
    10 
    11 btn = QPushButton(QIcon('xxx.png'),'xxx',window)
    12 # *********菜单设置***********begin
    13 menu = QMenu()
    14 
    15 # 子菜单
    16 open_recent_menu = QMenu(menu)
    17 open_recent_menu.setTitle("最近打开")
    18 # open_recent_menu.setIcon() # 也可以设置图标
    19 
    20 # 创建相应的行为动作
    21 # new_action = QAction()
    22 # new_action.setText("新建")
    23 # new_action.setIcon(QIcon('xxx.png'))
    24 new_action = QAction(QIcon('xxx.png'),'新建',menu) # 构造函数,实现以上功能
    25 new_action.triggered.connect(lambda :print("新建文件"))
    26 
    27 open_action = QAction(QIcon('xxx.png'),'打开',menu) # 构造函数,实现以上功能
    28 open_action.triggered.connect(lambda :print("打开文件"))
    29 
    30 exit_action = QAction('退出',menu) # 构造函数,实现以上功能
    31 exit_action.triggered.connect(lambda :print("退出程序"))
    32 
    33 file_action = QAction("Python-GUI-PyQt",open_recent_menu)
    34 open_recent_menu.addAction(file_action) # 添加到子菜单
    35 # 将行为动作添加到菜单
    36 menu.addAction(new_action)
    37 menu.addAction(open_action)
    38 menu.addMenu(open_recent_menu) # 添加子菜单
    39 menu.addSeparator()  # 添加分割线
    40 menu.addAction(exit_action)
    41 # *********菜单设置***********end
    42 
    43 btn.setMenu(menu) # 控件里加入菜单
    44 
    45 # btn.showMenu() # 展示菜单
    46 print(btn.menu()) # 获取菜单
    47 
    48 window.show()
    49 sys.exit(app.exec_())
    50 # *******************菜单设置**********************结束
    菜单设置

    4、QPushButton——扁平化

    (1)框架

    (2)操作:btn.isFlat(True)

     1 # *******************扁平化**********************开始
     2 import sys
     3 from PyQt5.Qt import *
     4 
     5 app=QApplication(sys.argv)
     6 
     7 window=QWidget()
     8 window.setWindowTitle("扁平化")
     9 window.resize(500,500)
    10 
    11 btn = QPushButton(QIcon('xxx.png'),'哈哈',window)
    12 btn.setStyleSheet('background-color:red')
    13 # 扁平化  设置了扁平化不显示背景色
    14 btn.setFlat(True)
    15 print(btn.isFlat())
    16 
    17 window.show()
    18 sys.exit(app.exec_())
    19 # *******************扁平化**********************结束
    扁平化

    5、QPushButton——默认处理

    (1)框架

    (2)操作:

     1 # *******************默认处理**********************开始
     2 import sys
     3 from PyQt5.Qt import *
     4 
     5 app=QApplication(sys.argv)
     6 
     7 window=QWidget()
     8 window.setWindowTitle("默认处理")
     9 window.resize(500,500)
    10 
    11 btn1 = QPushButton(QIcon('xxx.png'),"btn",window)
    12 btn2 = QPushButton("btn",window)
    13 btn2.move(200,200)
    14 
    15 btn1.setAutoDefault(True) # 用户点击后才会默认
    16 
    17 print(btn1.autoDefault()) # True
    18 print(btn2.autoDefault()) # False
    19 
    20 btn2.setDefault(True)  # 一开始就是默认处理
    21 
    22 window.show()
    23 sys.exit(app.exec_())
    24 # *******************默认处理**********************结束
    默认处理

    6、QpushButton——右键菜单

    (1)框架

    (2)操作

    方法一:通过对象方法调用contextMenuEvent( )

     1 # *******************右键菜单**********************开始
     2 import sys
     3 from PyQt5.Qt import *
     4 
     5 class Window(QWidget):
     6     def contextMenuEvent(self, evt):
     7         print("展示菜单")
     8         menu = QMenu(self)
     9 
    10         open_action = QAction(QIcon('xxx.png'), "打开文件")
    11         open_action.triggered.connect(lambda: print("打开文件"))
    12         new_action = QAction(QIcon('xxx.png'), "新建文件")
    13         new_action.triggered.connect(lambda: print("新建文件"))
    14         save_action = QAction(QIcon('xxx.png'), "保存")
    15         save_action.triggered.connect(lambda: print("保存"))
    16         exit_action = QAction(QIcon('xxx.png'), "退出")
    17         exit_action.triggered.connect(lambda: print("退出"))
    18 
    19         menu.addAction(open_action)
    20         menu.addAction(new_action)
    21         menu.addAction(save_action)
    22         menu.addAction(exit_action)
    23         menu.exec_(QPoint(evt.globalPos()))
    24 
    25 app=QApplication(sys.argv)
    26 
    27 window=Window()
    28 window.setWindowTitle("右键菜单")
    29 window.resize(500,500)
    30 
    31 btn = QPushButton(QIcon('xxx.png'),'菜单',window)
    32 menu = QMenu()
    33 
    34 open_action = QAction(QIcon('xxx.png'),"打开文件")
    35 open_action.triggered.connect(lambda :print("打开文件"))
    36 menu.addAction(open_action)
    37 btn.setMenu(menu)
    38 
    39 window.show()
    40 sys.exit(app.exec_())
    41 # *******************右键菜单**********************结束
    右键菜单--法一
     1 # *******************右键菜单--2**********************开始
     2 import sys
     3 from PyQt5.Qt import *
     4 
     5 def show_menu(point):
     6     print("展示菜单",point)
     7     menu = QMenu(window)
     8 
     9     open_action = QAction(QIcon('xxx.png'), "打开文件")
    10     open_action.triggered.connect(lambda: print("打开文件"))
    11     new_action = QAction(QIcon('xxx.png'), "新建文件")
    12     new_action.triggered.connect(lambda: print("新建文件"))
    13     save_action = QAction(QIcon('xxx.png'), "保存")
    14     save_action.triggered.connect(lambda: print("保存"))
    15     exit_action = QAction(QIcon('xxx.png'), "退出")
    16     exit_action.triggered.connect(lambda: print("退出"))
    17 
    18     menu.addAction(open_action)
    19     menu.addAction(new_action)
    20     menu.addAction(save_action)
    21     menu.addAction(exit_action)
    22 
    23     dest_point = window.mapToGlobal(point)
    24     menu.exec_(QPoint(dest_point))
    25 
    26 app=QApplication(sys.argv)
    27 
    28 window=QWidget()
    29 window.setWindowTitle("右键菜单")
    30 window.resize(500,500)
    31  
    32 btn = QPushButton(QIcon('xxx.png'),'菜单',window)
    33 menu = QMenu()
    34 
    35 open_action = QAction(QIcon('xxx.png'),"打开文件")
    36 open_action.triggered.connect(lambda :print("打开文件"))
    37 menu.addAction(open_action)
    38 btn.setMenu(menu)
    39 
    40 window.setContextMenuPolicy(Qt.CustomContextMenu)
    41 window.customContextMenuRequested.connect(show_menu)
    42 
    43 window.show()
    44 sys.exit(app.exec_())
    45 # *******************右键菜单--2**********************结束
    右键菜单--法二

    7、QCommandLinkButton

    (1)框架

      扁平化

      继承QPushButton

    (2)操作

     1 # *******************QCommandLinkButton**********************开始
     2 import sys
     3 from PyQt5.Qt import *
     4 
     5 app=QApplication(sys.argv)
     6 
     7 window=QWidget()
     8 window.setWindowTitle("QCommandLinkButton")
     9 window.resize(500,500)
    10 
    11 btn = QCommandLinkButton('标题','描述',window)
    12 btn.setText("标题2")
    13 btn.setDescription("描述。。。")
    14 btn.setIcon(QIcon('xxx.png'))
    15 
    16 print(btn.description())
    17 
    18 window.show()
    19 sys.exit(app.exec_())
    20 # *******************QCommandLinkButton**********************结束
    QCommandLinkButton操作

    时间:2020-03-19   15:09:13

    作者(QQ):931935931

  • 相关阅读:
    [Spring Unit Testing] Spring Unit Testing with a Java Context
    [Docker] Benefits of Multi-stage Builds
    [Mockito] Mock List interface
    Android自定义垂直滚动自动选择日期控件
    关于 MVC 字段 默认值
    Qt Creator编译时:cannot open file 'debugQtGuiEx.exe' File not found
    ListView开发笔记
    C/C++误区四:char c = getchar();
    ORACLE 中写入txt文本与从Txt文件中读入数据 修改表结构
    wikioi 1214 线段覆盖
  • 原文地址:https://www.cnblogs.com/fengxb1213/p/12524456.html
Copyright © 2011-2022 走看看