PyQt5學習筆記9_使用setStyle和setStyleSheet進行換膚

通過QStyleFactory.keys()可獲取用於setStyle的有效值,本例程中包含“Windows”,“WindowsXP”,“WindowsVista”,“Fusion”四種風格,此外,還使用了setStyleSheet對一款黑色主題“QDarkStyleSheet”進行加載,即可以在以上5種界面風格之間切換。
效果如下:
在這裏插入圖片描述
代碼如下:

import sys
from os.path import join, dirname, abspath
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QMainWindow, QStyleFactory
import qdarkstyle

_UI = join(dirname(abspath(__file__)), 'mainwindow.ui')


class MainWindow(QMainWindow):
    def __init__(self):
        QMainWindow.__init__(self)
        uic.loadUi(_UI, self)


class Application(QApplication):
    def __init__(self, argv):
        QApplication.__init__(self, argv)

    def _slot_setStyle(self):
        app.setStyleSheet('')
        tmp = self.sender().objectName()[6:]
        if tmp in QStyleFactory.keys():
            app.setStyle(tmp)
        elif tmp == 'Qdarkstyle':
            app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())


if __name__ == '__main__':
    app = Application(sys.argv)
    w = MainWindow()
    w.actionWindows.triggered.connect(app._slot_setStyle)
    w.actionWindowsXP.triggered.connect(app._slot_setStyle)
    w.actionWindowsVista.triggered.connect(app._slot_setStyle)
    w.actionFusion.triggered.connect(app._slot_setStyle)
    w.actionQdarkstyle.triggered.connect(app._slot_setStyle)
    w.show()
    sys.exit(app.exec_())

相關鏈接:
PyQt5學習筆記7_QDarkStyleSheet

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章