python qt 按钮_Python界面编程之按钮类控件的使用,PyQt5之QPushButton控件详解

前面内容我们介绍了PyQt5常见的文本类控件和标签类控件的使用。

温故而知新

Python界面编程之PyQt常见控件展示,QTextEdit文本框类使用详解

Python界面编程之PyQt常见控件展示,QLineEdit文本框类使用详解

盘点界面编程中那些常用控件,详解PyQt5中标签控件QLabel的使用

今天,我们来了解下常用的按钮QPushButton类的使用

01QAbstractButton类

接前面的思路,了解QPushButton之前,我们还是来看下它继承自哪里?

>>> QPushButton.__mro__

追根溯源

(, , , , , , , )

一大堆内容,它的“祖先”我们就不讨论了,来看下它的直接父类QAbstractButton,从名字可以看出它还是一个按钮,还是一个“抽象按钮”。其实,它是PyQt5中其他按钮的基类,我们知道的一些具有按钮功能的控件基本都是它的派生类(比如:单选框、复选框等)。

按钮控件

先来看一下它到底抽象在哪里,我们知道,对于按钮,它有很多通用的属性和方法,如果QAbstractButton类提供了按钮的基本属性和方法,那么,它的抽象是成功的。事实上,它确实做到了。我们来看下常用的状态和方法。

常用状态

对于按钮来说,无外乎有下面几种状态

QAbstractButton支持普通按钮和开关按钮(按下去不会弹起来的那种按钮)。其中,一个按钮可否被选中这个特点在单选按钮QRadioButton和复选按钮QCheckBox类中得以体现。普通按钮的特性在QPushButton和QToolButton类中体现;而上面提到的这几种按钮类都提供了开关功能,大家结合自己需求选用合适的即可。

按钮可以模拟开关

此外,它还提供下面几种常用的信号

当然,对于一个按钮来讲,少不了对其文本、图标、快捷键的设置,而这些属性设置在QAbstractButton类中都有所涉及。我们来看下它提供的设置属性的一些方法。

>>>print([i for i in dir(QAbstractButton) if i.startswith('set')])

['setAcceptDrops', 'setAccessibleDescription', 'setAccessibleName', 'setAttribute', 'setAutoExclusive', 'setAutoFillBackground', 'setAutoRepeat', 'setAutoRepeatDelay', 'setAutoRepeatInterval', 'setBackgroundRole', 'setBaseSize', 'setCheckable', 'setChecked', 'setContentsMargins', 'setContextMenuPolicy', 'setCursor', 'setDisabled', 'setDown', 'setEnabled', 'setFixedHeight', 'setFixedSize', 'setFixedWidth', 'setFocus', 'setFocusPolicy', 'setFocusProxy', 'setFont', 'setForegroundRole', 'setGeometry', 'setGraphicsEffect', 'setHidden', 'setIcon', 'setIconSize', 'setInputMethodHints', 'setLayout', 'setLayoutDirection', 'setLocale', 'setMask', 'setMaximumHeight', 'setMaximumSize', 'setMaximumWidth', 'setMinimumHeight', 'setMinimumSize', 'setMinimumWidth', 'setMouseTracking', 'setObjectName', 'setPalette', 'setParent', 'setProperty', 'setShortcut', 'setShortcutAutoRepeat', 'setShortcutEnabled', 'setSizeIncrement', 'setSizePolicy', 'setStatusTip', 'setStyle', 'setStyleSheet', 'setTabOrder', 'setTabletTracking', 'setText', 'setToolTip', 'setToolTipDuration', 'setUpdatesEnabled', 'setVisible', 'setWhatsThis', 'setWindowFilePath', 'setWindowFlag', 'setWindowFlags', 'setWindowIcon', 'setWindowIconText', 'setWindowModality', 'setWindowModified', 'setWindowOpacity', 'setWindowRole', 'setWindowState', 'setWindowTitle']

感兴趣的小伙伴下去之后慢慢研究,这里作为一个引子,就不再赘述了。

02QPushButton使用

QPushButton是PyQt中经典的不能再经典的按钮了。我们来看下它的常用方法。

使用快捷键是个不错的选择

此外,它还可以设置快捷键,一般通过显示文本处理,来达到设置快捷键的目的:在相应的快捷键前面加"&"符号。当使用Alt+快捷键时,按钮会被按下。如:

button = QPushButton('&Download')

button.setDefault(True)

当在程序界面使用快捷键Alt + 'D'时,该button按钮被按下。

除了这些,我们可以对按钮文字格式进行自定义设置(下面这些设置应该在PyQt5中通用的)

from PyQt5 import QtGui

from PyQt5.Qt import QPushButton

...(省略部分代码)

button = QPushButton

font = QtGui.QFont()font.setFamily('微软雅黑')

font.setBold(True)

font.setPointSize(10)

font.setWeight(50)

button.setFont(font)

个性化定制显示效果

利用QFont类设置,然后button实例应用该格式

还可以制作一个图标按钮,具体不赘述了,看下面实例吧。

03举个例子

上面介绍了按钮的一些方法和属性,这些个方法属性如何应用呢?

看下面的例子。创建四个按钮控件,然后处理信号事件,打印输出那些按钮被单击了。

首先导入模块

import sys

from PyQt5.QtGui import *

from PyQt5.QtWidgets import *

自定义类QPushButtonDemo类

创建自定义类

创建完成后,还要为控件编写槽函数。如下:

剩下的代码

然后,我们来看下运行效果

运行效果展示

好了,今天的内容就到这里了,喜欢的小伙伴们点个赞呗。喜欢Python编程的小朋友欢迎关注我,后续会推出更精彩的内容。

欢迎留言加关注

转载请注明出处,百家号:Python高手养成

你可能感兴趣的:(python,qt,按钮)