Python3+PyQt5编程:如何获取PyQt5中内置的图标并显示?
1、引言
在Python编程中,PyQt库是使用率较高的一个编写程序软件的图形界面库。我们常常需要使用图标美化界面,如给控件设置图标、菜单中加图标指示等,图标资源除了在网上下载现成的图标文件外,也可以使用PyQt库中内置的图标。实际上,在PyQt5界面库中内置了大约70个左右的常用图标,不同版本的PyQt库中其个数略有区别,下面给出获取这些图标并显示的方法。
2、软件运行界面
先看下软件界面,如下图所示,在一个窗口中,使用网格布局(QGridLayout),每行显示4个按钮控件,在每个按钮控件上显示出一个图标,并同时显示出该图标的名称及其对应的索引号。
3、代码实现
在PyQt5中可使用QApplication.style().standardIcon()方法来实现对其内置图标的使用,实现上述界面的代码及其简单,加上注释及空行,全部代码仅需35行即可实现了,如下图所示。
sys PyQt5.QtWidgets * PyQt5.QtGui * PyQt5.QtCore * (QWidget): (, parent=): (MainWnd, ).(parent) icons = (.getEnumStrings(QStyle, QStyle.StandardPixmap).items()) layout = QGridLayout() colNums = i, iconInfo (icons[:]): btn = QPushButton(QApplication.style().standardIcon(i), .format(*iconInfo)) btn.setStyleSheet() layout.addWidget(btn, (i / colNums), i % colNums) .setWindowTitle() .setWindowIcon(QApplication.style().standardIcon(QStyle.SP_DriveFDIcon)) (, cls, enum): s = {} key (cls): value = (cls, key) (value, enum): s[.format(value)] = key s __name__ == : app = QApplication(sys.argv) w = MainWnd() w.show() sys.exit(app.exec_())
其中,对内置图标的所有索引值是存储QStyle.StandardPixmap的枚举变量中的,因此,只需要取出该变量所有可能的取值及其对应的字符串值,即可在按钮控件上进行显示该图标的信息。本例中通过函数getEnumStrings获取StandardPixmap枚举类型变量的所有索引值及其对应的名称字符串,在主程序中进行解析调用即可。
从上面的代码可看出,使用Python+PyQt架构进行软件编程,相对于其它如C语言等高级编程语言来讲,代码量是极其简洁的。
赞 (0)