一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python3+PyQt5編程:如何獲取PyQt5中內(nèi)置的圖標(biāo)并顯示?

 lgk88888 2021-09-01

1、引言

在Python編程中,PyQt庫(kù)是使用率較高的一個(gè)編寫程序軟件的圖形界面庫(kù)。我們常常需要使用圖標(biāo)美化界面,如給控件設(shè)置圖標(biāo)、菜單中加圖標(biāo)指示等,圖標(biāo)資源除了在網(wǎng)上下載現(xiàn)成的圖標(biāo)文件外,也可以使用PyQt庫(kù)中內(nèi)置的圖標(biāo)。實(shí)際上,在PyQt5界面庫(kù)中內(nèi)置了大約70個(gè)左右的常用圖標(biāo),不同版本的PyQt庫(kù)中其個(gè)數(shù)略有區(qū)別,下面給出獲取這些圖標(biāo)并顯示的方法。

2、軟件運(yùn)行界面

先看下軟件界面,如下圖所示,在一個(gè)窗口中,使用網(wǎng)格布局(QGridLayout),每行顯示4個(gè)按鈕控件,在每個(gè)按鈕控件上顯示出一個(gè)圖標(biāo),并同時(shí)顯示出該圖標(biāo)的名稱及其對(duì)應(yīng)的索引號(hào)。

3、代碼實(shí)現(xiàn)

在PyQt5中可使用QApplication.style().standardIcon()方法來實(shí)現(xiàn)對(duì)其內(nèi)置圖標(biāo)的使用,實(shí)現(xiàn)上述界面的代碼及其簡(jiǎn)單,加上注釋及空行,全部代碼僅需35行即可實(shí)現(xiàn)了,如下圖所示。

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_())

其中,對(duì)內(nèi)置圖標(biāo)的所有索引值是存儲(chǔ)QStyle.StandardPixmap的枚舉變量中的,因此,只需要取出該變量所有可能的取值及其對(duì)應(yīng)的字符串值,即可在按鈕控件上進(jìn)行顯示該圖標(biāo)的信息。本例中通過函數(shù)getEnumStrings獲取StandardPixmap枚舉類型變量的所有索引值及其對(duì)應(yīng)的名稱字符串,在主程序中進(jìn)行解析調(diào)用即可。

從上面的代碼可看出,使用Python+PyQt架構(gòu)進(jìn)行軟件編程,相對(duì)于其它如C語(yǔ)言等高級(jí)編程語(yǔ)言來講,代碼量是極其簡(jiǎn)潔的。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产日韩欧美综合视频| 久久亚洲国产视频三级黄 | 午夜传媒视频免费在线观看| 美女黄片大全在线观看| 色哟哟国产精品免费视频| 日韩欧美国产高清在线| 九九九热视频免费观看| 粉嫩国产一区二区三区在线| 国产午夜在线精品视频| 99热在线精品视频观看| 亚洲熟女少妇精品一区二区三区| 97人妻精品一区二区三区免| 久久综合狠狠综合久久综合| 99久久人妻中文字幕| 成人精品日韩专区在线观看| 国产精品刮毛视频不卡| 日韩美成人免费在线视频| 国产成人精品一区二区三区| 亚洲综合天堂一二三区| 免费播放一区二区三区四区| 日韩国产亚洲欧美另类| 亚洲品质一区二区三区| 日韩欧美国产三级在线观看| 日本国产欧美精品视频| 国产极品粉嫩尤物一区二区| 一区二区三区日韩经典| 麻豆一区二区三区在线免费| 免费黄片视频美女一区| 亚洲精品日韩欧美精品| 日本中文在线不卡视频| 国产传媒一区二区三区| 国产精品涩涩成人一区二区三区| 好吊日成人免费视频公开| 精品国产亚洲区久久露脸| 国产亚洲欧美一区二区| 成人区人妻精品一区二区三区| 麻豆精品在线一区二区三区| 91日韩欧美中文字幕| 狠狠干狠狠操在线播放| 国产高清精品福利私拍| 日韩精品在线观看一区|