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

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

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

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

編寫QSS

首先新建一個(gè)擴(kuò)展名為.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

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

class CommonHelper:
  def __init__(self):
    pass

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

然后在主函數(shù)進(jìn)行加載,其核心代碼如下

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

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

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

在換樣式時(shí),不需要全局修改,只需要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_())

沒有加載樣式時(shí),窗口樣式

加載樣式后,窗口樣式

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

相關(guān)文章

  • 如何使用pytorch構(gòu)建高斯混合模型分類器

    如何使用pytorch構(gòu)建高斯混合模型分類器

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

    Python3爬蟲之自動(dòng)查詢天氣并實(shí)現(xiàn)語音播報(bào)

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

    Python基礎(chǔ)之教你怎么在M1系統(tǒng)上使用pandas

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

    python與matlab一些常用函數(shù)互轉(zhuǎn)問題

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

    python中numpy包使用教程之?dāng)?shù)組和相關(guān)操作詳解

    這篇文章主要給大家介紹了關(guān)于python中numpy包的使用教程,包含數(shù)組和相關(guān)操作等內(nèi)容,文中通過示例代碼介紹的非常詳細(xì),對大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來跟著小編一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-07-07
  • 最新評論