PyQt5工具按钮控件QToolButton构造和图标设置
首先我们要知道QToolButton也是按钮控件,也是继承自QAbstractButton,所以父类的方法他都能用。
首先我们要知道QToolButton也是按钮控件,也是继承自QAbstractButton,所以父类的方法他都能用。
至于QPushButton和QToolButton的区别其实并不大,我查了一下Qt文档页就说了2点:1.原生样式不一样, QPushButton按钮更大,QToolButton的按钮更小,但是通过尺寸设置也能找到平衡,貌似没有什么说服力;2.侧重功能不同,QToolButton可与菜单栏一起使用,QPushButton没有该属性,这一点也可以通过其他方法实现同样的效果。我个人认为QToolButton更适合软件工具栏的图标按钮,其实也没有必要研究过于深刻,一般软件开发不会区分这么严格。后面的文章我们只要知道QToolButton的用法和属性等知识点即可,在开发工作中可以根据需要自由安排。
一、首先看看QToolButton的样式和构造
构造方面继承QAbstractButton方法和属性,自己没有什么特别的参数。
class QToolButton(QAbstractButton): """ QToolButton(parent: QWidget = None) """
二、下面来对比一下细节方面的不同,我实例化2个QToolButton对象和1个QPushButton对象。
from PyQt5.Qt import * import sys app = QApplication(sys.argv) window = QWidget() window.setWindowTitle('PyQt5工具按钮控件QToolButton - PyQt5中文网') window.resize(600, 450) btn1 = QToolButton(window) btn1.move(80, 60) btn1.resize(80, 40) btn1.setText('按钮1') btn1.setIcon(QIcon('123.jpg')) btn2 = QPushButton(window) btn2.move(80, 160) btn2.resize(80, 40) btn2.setText('按钮2') btn2.setIcon(QIcon('123.jpg')) btn3 = QToolButton(window) btn3.move(80, 260) btn3.resize(80, 40) btn3.setText('按钮1') window.show() sys.exit(app.exec_())
出来的效果如下:
从上面的结果可以看出来,如果文本和图标同时存在QToolButton只会显示图标,隐藏文本。这一点可能是两种按钮最明显的区别了,所以说QToolButton更适合工具栏图标。