前言
按钮控件是图形用户界面(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时可以隐藏按钮边框,
工具按钮控件(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())
运行结果如下: