最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

編寫(xiě)QSS

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

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

}

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

加載QSS

為了方便以后使用,可以編寫(xiě)一個(gè)公共類(lèi)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文件的建立,下面會(huì)用到

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('測(cè)試提示')
    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_())

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

加載樣式后,窗口樣式

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

相關(guān)文章

  • TensorFlow實(shí)現(xiàn)模型斷點(diǎn)訓(xùn)練,checkpoint模型載入方式

    TensorFlow實(shí)現(xiàn)模型斷點(diǎn)訓(xùn)練,checkpoint模型載入方式

    這篇文章主要介紹了TensorFlow實(shí)現(xiàn)模型斷點(diǎn)訓(xùn)練,checkpoint模型載入方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • Python迭代器定義與簡(jiǎn)單用法分析

    Python迭代器定義與簡(jiǎn)單用法分析

    這篇文章主要介紹了Python迭代器定義與簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了迭代器的概念、原理、創(chuàng)建及使用方法,需要的朋友可以參考下
    2018-04-04
  • Python正則表達(dá)式的使用范例詳解

    Python正則表達(dá)式的使用范例詳解

    本文將是一系列關(guān)于Python正則表達(dá)式文章的其中一部分。在這個(gè)系列的第一篇文章中,我們將重點(diǎn)討論如何使用Python中的正則表達(dá)式并突出Python中一些獨(dú)有的特性。
    2014-08-08
  • 詳解tensorflow載入數(shù)據(jù)的三種方式

    詳解tensorflow載入數(shù)據(jù)的三種方式

    這篇文章主要介紹了詳解tensorflow載入數(shù)據(jù)的三種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 詳解python的集合set的函數(shù)

    詳解python的集合set的函數(shù)

    這篇文章主要為大家介紹了python的集合set的函數(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • python爬蟲(chóng)基礎(chǔ)之urllib的使用

    python爬蟲(chóng)基礎(chǔ)之urllib的使用

    這篇文章主要介紹了python爬蟲(chóng)基礎(chǔ)之urllib的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • 編寫(xiě)同時(shí)兼容Python2.x與Python3.x版本的代碼的幾個(gè)示例

    編寫(xiě)同時(shí)兼容Python2.x與Python3.x版本的代碼的幾個(gè)示例

    這篇文章主要介紹了編寫(xiě)同時(shí)兼容Python2.x與Python3.x版本的代碼的幾個(gè)示例,在Python2.7.x的更新中由于采用了某些Python3中的代碼編寫(xiě)特性、使得在有些原本不同之處編寫(xiě)兼容性代碼成為可能,需要的朋友可以參考下
    2015-03-03
  • Python屬性私有化詳解

    Python屬性私有化詳解

    私有化是為了實(shí)現(xiàn)更好的封裝形式。能隱藏屬性,不被隨意修改。以前置雙下劃線__屬性/方法名定義,但是結(jié)尾不能是雙下劃線。如果不讓某些屬性在類(lèi)外部被隨意更改,可設(shè)置成私有屬性。在類(lèi)定義的內(nèi)部可以訪問(wèn)
    2023-02-02
  • Windows系統(tǒng)下使用flup搭建Nginx和Python環(huán)境的方法

    Windows系統(tǒng)下使用flup搭建Nginx和Python環(huán)境的方法

    這篇文章主要介紹了Windows系統(tǒng)下使用flup搭建Nginx和Python環(huán)境的方法,文中使用到了flup這個(gè)Python的FastCGI工具,需要的朋友可以參考下
    2015-12-12
  • 深入了解Python如何操作MongoDB

    深入了解Python如何操作MongoDB

    MongoDB是由C++語(yǔ)言編寫(xiě)的非關(guān)系型數(shù)據(jù)庫(kù),是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)。本文主要介紹了如何通過(guò)Python操作MongoDB,需要的可以參考一下
    2022-01-01

最新評(píng)論

汤阴县| 微山县| 乐昌市| 建湖县| 扬中市| 临海市| 佳木斯市| 桃源县| 定南县| 江阴市| 伊宁县| 卢龙县| 西安市| 隆尧县| 玉山县| 阿勒泰市| 章丘市| 铜梁县| 樟树市| 阿瓦提县| 灌阳县| 安徽省| 毕节市| 利津县| 仲巴县| 安西县| 洛隆县| 神池县| 积石山| 图们市| 广宗县| 新和县| 都兰县| 随州市| 离岛区| 武平县| 黄山市| 汉源县| 太仆寺旗| 正宁县| 西城区|