zoukankan      html  css  js  c++  java
  • 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界面的。眼下还没有试过。故不多说。。

    。。

    
    
  • 相关阅读:
    PHP CI分页类带多个参数
    PHP oracle分页
    PHP 防范IP攻击
    PHP 防范CC攻击
    PHP 防范xss攻击
    html input
    弹框样式
    php最快捷的插入数据,3000万仅需5秒
    phpcms 后台分页
    phpcms 用phpexcel导入导出excel
  • 原文地址:https://www.cnblogs.com/yxysuanfa/p/6798386.html
Copyright © 2011-2022 走看看