PyQt5零基础入门(八)——按钮控件(QPushButton、QToolButton)

前言

按钮控件是图形用户界面(GUI)中常用的交互元素,用于触发特定的事件或行为。在Qt框架中,QPushButton和QToolButton是两种常用的按钮控件。

后边我们将以test.png为按钮图标,对比使用两种按钮控件。

普通按钮控件(QPushButton)

QPushButton是一个标准的按钮控件,用户可以点击它来触发某个动作。当按钮被点击时,它会发出一个信号,可以通过连接到一个槽函数来执行某个动作。

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


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.button = QPushButton('demo')
        self.button.setIcon(QIcon('test.png'))
        self.button.setFlat(True)
        self.button.clicked.connect(lambda:self.button.setEnabled(False))

        h_layout = QHBoxLayout()
        h_layout.addWidget(self.button)
        self.setLayout(h_layout)


if __name__ == '__main__':
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())


运行结果如下:
在这里插入图片描述

在上述代码中,可以通过setIcon来设置图标,setFlat参数设置为True时可以隐藏按钮边框,如果要禁用按钮,可以用setEnabled(False)来实现。

工具按钮控件(QToolButton)

QToolButton是一个工具栏按钮,通常用在工具栏中。它比标准的QPushButton更小,并且设计用于工具栏上下文。它的外观通常更简洁,只有图标或图标和简短的标签。和QPushButton类似,但它通常与工具栏关联,用于快速访问常用功能或命令。

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


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.button = QToolButton()
        self.button.setToolTip('这是提示')
        self.button.setToolTipDuration(1000)

        self.button.setIcon(QIcon('test.png'))
        self.button.setIconSize(QSize(50, 50))

        self.button.setText('工具按钮')
        self.button.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)

        h_layout = QHBoxLayout()
        h_layout.addWidget(self.button)
        self.setLayout(h_layout)


if __name__ == '__main__':
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())

运行结果如下:

PyQt5零基础入门(八)——按钮控件(QPushButton、QToolButton)_第1张图片
在上述代码中,调用setToolTip方法设置按钮的提示文本,setToolTipDuration设置显示文本显示时间,这里使用的1000代表的是1s。通过这个设置,当鼠标移动到按钮中时会显示提示文本,效果如下:
PyQt5零基础入门(八)——按钮控件(QPushButton、QToolButton)_第2张图片
如果要在工具按钮上显示文本,可以使用setText。同时可以使用setToolButtonStyle设置图标和文本的相对位置。

图标与文本的相对位置设置

常量 描述
Qt.ToolButtonIconOnly 只显示图标
Qt.ToolButtonTextOnly 只显示文本
Qt.ToolButtonTextBesideIcon 将文本显示在图标右侧
Qt.ToolButtonTextUnderIcon 将文本显示在图标下方
Qt.ToolButtonFollowStyle 遵循QStyle样式

你可能感兴趣的:(PyQt5入门到实践,qt,开发语言)