Qt Creator項目中使用qss


近期學習qt 。使用的編譯器是qt creator ,學習過程中遇到的題就是 怎樣將程序中將要用到的.qss 文件靜態編譯到.exe程序中,而不是在程序執行時動態加載。動態加載的最大問題在於一旦.qss 的文件名稱或者路徑改變 ,程序中所用到的.qss 文件也將失效,這種話程序無法公布,即使公布了,頁面效果也會大打折扣。。。


在網上找了非常多資料。但試過之后都沒用,以下是網上找到的一些資料:


方法一:1、建立文本文件,寫入樣式表內容。更改文件后綴名為qss;

               2、在project中新建資源文件*.qrc,將qss文件增加資源文件qrc中。此處注意prefix最好為"/"。否則在調用qss文件時會找不到文件;

              3、通過傳入路徑\文件名稱的方式創建一個QFile對象,以readonly的方式打開,然后readAll,最后qApp->setStyleSheet就能夠使qss生效。

             

QString qss;



    QFile qssFile(":/qss/css.qss");

    qssFile.open(QFile::ReadOnly);

    if(qssFile.isOpen())

    {

        qss = QLatin1String(qssFile.readAll());

        qApp->setStyleSheet(qss);

        qssFile.close();

    }



方法二:動態加載

          1、建立文本文件,寫入樣式表內容。更改文件后綴名為qss。
          2、在程序中新建QFile對象,指向新建的qss文件就可以

QString qss;



    QFile qssFile("D:\\Test\\qss.qss");

    qssFile.open(QFile::ReadOnly);

    if(qssFile.isOpen())

    {

        qss = QLatin1String(qssFile.readAll());

        qApp->setStyleSheet(qss);

        qssFile.close();

    }


第一種方法,依照網上的說法,假設成功的話應該是靜態編譯,已經將qss文件編譯到exe程序中,但我按第一種方法試過之后,不知什么原因沒實用;
另外一種方法。屬於動態編譯,程序執行的時候讀入。這樣的方法靈活性太低,一旦文件發生改變。exe的效果也會失效


我的方法:1、新建qt項目,包含ui界面的那種。
                  2、新建文本文檔,輸入樣式表(qss)的文本。
                  3、右鍵單擊項目的ui界面,選擇    “改變樣式表”。
                  4、在彈出的對話框中,直接粘貼qss文件的內容就可以

我的方法屬於靜態編譯。。

。。。



對於項目中不包含ui界面的。眼下還沒有試過。故不多說。。

。。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM