目录

一、QPushButton控件类的介绍

(1)类

(2)常用方法函数

(3)槽

二、实例演示


一、QPushButton控件类的介绍

(1)类

class QPushButton构造一个不带文本和父项的按钮。构造一个带图标,文本和父项的按钮。请注意,您还可以将QPixmap对象作为图标传递(由于C ++提供了隐式类型转换)。

(2)常用方法函数

autoDefault():此属性保存按钮是否为自动默认按钮。如果将此属性设置为true,则按钮为自动默认按钮。在某些GUI样式中,绘制的默认按钮周围有额外的边框,最多3像素或者更多。Qt会自动在自动默认按钮周围保留此空间,即自动默认按钮的提示可能会稍大。对于具有QDialog父级的按钮,此属性的默认值为true;否则,默认为false。有关default和auto-default如何交互的详细信息,请参见default属性。

initStyleOption(option):使用此QPushButton中的值初始化选项。当子类需要QStyleOptionButton,但又不想自己填写所有信息时,此方法很有用。

isFlat():此属性保存是否提高按钮边框。此属性的默认值为false。如果设置了此属性,除非按下按钮,否则大多数样式都不会绘制按钮背景。setAutoFillBackground()可用于确保使用“按钮”画笔填充背景

menu():返回与按钮关联的弹出菜单,如果没有设置弹出菜单,则返回None。

setMenu(menu):将弹出菜单菜单与此按钮关联。这会将按钮变成菜单按钮,在某些样式中会在按钮文本的右侧产生一个小三角形。菜单的所有权不会转移到按钮上。带有弹出菜单的按钮以Fusion小部件样式显示。

(3)槽

showMenu():显示(弹出)相关的弹出菜单。如果没有这样的菜单,则此功能不起作用。直到用户关闭了弹出菜单,此功能才返回。

(4)其他内容请查看PyQt官方文档

QPushButton — Qt for Python

二、实例演示

'''
按钮控件(QPushButton)
QAbstractButton
QPushButton
AToolButton
QRadioButton
QCheckBox
'''


import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

class QPushButtonDemo(QDialog) :
    def __init__(self):
        super(QPushButtonDemo,self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('QPushButton Demo')

        layout = QVBoxLayout()

        self.button1 = QPushButton('第1个按钮')#创建QpushButton对象,并设置其text
        self.button1.setText('First Button1')
        self.button1.setCheckable(True)#设置为可选Button并赋值为True
        self.button1.toggle()#设置选中翻转
        self.button1.clicked.connect(self.buttonState)#连接到槽
        self.button1.clicked.connect(lambda :self.whichButton(self.button1))#连接到槽

        layout.addWidget(self.button1)#布局器内添加Button

        # 在文本前面显示图像

        self.button2 = QPushButton('图像按钮')#创建QpushButton对象,并设置其text
        self.button2.setIcon(QIcon(QPixmap('./picture/14.jpeg')))#设置按钮图标
        self.button2.clicked.connect(lambda:self.whichButton(self.button2))#连接到槽
        layout.addWidget(self.button2)#连接到槽

        self.button3 = QPushButton('不可用的按钮')#创建QpushButton对象,并设置其text
        self.button3.setEnabled(False)#设置为不可点击
        layout.addWidget(self.button3)#布局器内添加Button

        self.button4 = QPushButton('&MyButton')#创建QpushButton对象,并设置其text
        self.button4.setDefault(True)#设置为焦点,回车触发
        self.button4.clicked.connect(lambda:self.whichButton(self.button4))#连接到槽
        layout.addWidget(self.button4)#布局器内添加Button

        self.setLayout(layout)
        self.resize(400,300)

    def buttonState(self):
        if self.button1.isChecked():
            print('按钮1已经被选中')
        else:
            print('按钮1未被选中')

    def whichButton(self,btn):
        print('被单击的按钮是<' + btn.text() + '>')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QPushButtonDemo()
    main.show()
    app.exec_()
    del app

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐