欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python GUI庫圖形界面開發(fā)之PyQt5動態(tài)加載QSS樣式文件

 更新時間:2020年02月25日 15:19:03   作者:jia666666  
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5動態(tài)加載QSS樣式表,需要的朋友可以參考下

在Qt中經常需要使用樣式,為了降低耦合性(與邏輯代碼分離),我們通常會定義一個QSS文件,然后編寫各種控件(QLabel,QLIneEdit,QPushButton等)的樣式,最后使用QApplication或QMainWindow來加載樣式,這樣就可以讓整個應用程序共享一種樣式了

編寫QSS

首先新建一個擴展名為.qss的文件,如style.qss,然后將其加入資源文件(.qrc)中,在style.qss文件中編寫樣式代碼,例如

QMainWindow{
    border-image:url(./images/screen1.jpg);

}

QToolTip{
    border: 1px solid rgb(45, 45, 45);
    background: white;
    color: red;
}

加載QSS

為了方便以后使用,可以編寫一個公共類COmmomHelper,其核心代碼如下

class CommonHelper:
  def __init__(self):
    pass

  @staticmethod
  def readQss(style):
    with open(style, 'r') as f:
      return f.read()

然后在主函數進行加載,其核心代碼如下

app = QApplication(sys.argv)
  win = MainWindow()

  styleFile = './style.qss'
  qssStyle = CommonHelper.readQss(styleFile)
  win.setStyleSheet(qssStyle)

  win.show()
  sys.exit(app.exec_())

在換樣式時,不需要全局修改,只需要CommomHelper.readQSS()讀取不同的QSS文件即可

完整代碼如下

注意第一步的qss文件的建立,下面會用到

import sys
from PyQt5.QtWidgets import QMainWindow, QApplication, QVBoxLayout, QPushButton


class CommonHelper:
  def __init__(self):
    pass

  @staticmethod
  def readQss(style):
    with open(style, 'r') as f:
      return f.read()

class MainWindow(QMainWindow):
  def __init__(self, parent=None):
    super(MainWindow, self).__init__(parent)
    self.resize(477, 258)
    self.setWindowTitle("加載QSS文件")
    btn1 = QPushButton(self)
    btn1.setText('添加')
    btn1.setToolTip('測試提示')
    vbox = QVBoxLayout()
    vbox.addWidget(btn1)

    self.setLayout(vbox)


if __name__ == "__main__":
  app = QApplication(sys.argv)
  win = MainWindow()

  styleFile = './style.qss'
  qssStyle = CommonHelper.readQss(styleFile)
  win.setStyleSheet(qssStyle)

  win.show()
  sys.exit(app.exec_())

沒有加載樣式時,窗口樣式

加載樣式后,窗口樣式

本文介紹了如何在窗口運行狀態(tài)下動態(tài)加載QSS樣式文件改變窗口樣式,更多關于QSS樣式的文章請查看下面的相關鏈接

相關文章

  • Python深入淺出分析enum枚舉類

    Python深入淺出分析enum枚舉類

    在python中枚舉是一種類(Enum,IntEnum),存放在enum模塊中。枚舉類型可以給一組標簽賦予一組特定的值,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Python中模塊與包有相同名字的處理方法

    Python中模塊與包有相同名字的處理方法

    這篇文章主要給大家介紹了在Python中模塊與包有相同名字的處理方法,文中介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。
    2017-05-05
  • python忽略warnings的幾種方法

    python忽略warnings的幾種方法

    本文主要介紹了幾種在Python忽略警告信息的方法,,可以使用Python 內置的警告控制機制來抑制特定類型的警告,下面就來介紹一下,感興趣的可以了解一下
    2025-01-01
  • Python利用pandas計算多個CSV文件數據值的實例

    Python利用pandas計算多個CSV文件數據值的實例

    下面小編就為大家分享一篇Python利用pandas計算多個CSV文件數據值的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python算法學習之計數排序實例

    python算法學習之計數排序實例

    本代碼介紹了python算法學習中的計數排序實例,代碼大家參考使用吧
    2013-12-12
  • 如何使用pytorch構建高斯混合模型分類器

    如何使用pytorch構建高斯混合模型分類器

    本文是一個利用Pytorch構建高斯混合模型分類器的嘗試,我們將從頭開始構建高斯混合模型(GMM),這樣可以對高斯混合模型有一個最基本的理解,本文不會涉及數學,需要的朋友可以參考下
    2023-10-10
  • Python3爬蟲之自動查詢天氣并實現語音播報

    Python3爬蟲之自動查詢天氣并實現語音播報

    這篇文章主要介紹了Python3爬蟲之自動查詢天氣并實現語音播報,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-02-02
  • Python基礎之教你怎么在M1系統上使用pandas

    Python基礎之教你怎么在M1系統上使用pandas

    這篇文章主要介紹了Python基礎之教你怎么在M1系統上使用pandas,文中有非常詳細的代碼示例,對正在學習python基礎的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-05-05
  • python與matlab一些常用函數互轉問題

    python與matlab一些常用函數互轉問題

    這篇文章主要介紹了python與matlab一些常用函數互轉,包括十六進制字節(jié)流數據的相關知識,本文通過示例代碼給大家講解的非常詳細,需要的朋友可以參考下
    2022-12-12
  • python中numpy包使用教程之數組和相關操作詳解

    python中numpy包使用教程之數組和相關操作詳解

    這篇文章主要給大家介紹了關于python中numpy包的使用教程,包含數組和相關操作等內容,文中通過示例代碼介紹的非常詳細,對大家具有一定的參考學習價值,需要的朋友們下面來跟著小編一起學習學習吧。
    2017-07-07

最新評論