近期学习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界面的。眼下还没有试过。故不多说。。

。。




Qt Creator项目中使用qss的更多相关文章

  1. 关于QT建立项目中遇到的相关问题的处理办法

    关于QT建立项目中遇到的相关问题的处理办法 1.在QTCreater中新建一个空的工程时,第一次运行会抱一个错误,如下: -1: error: LNK1123: 转换到 COFF 期间失败: 文件无效 ...

  2. Windows下QT Creator工程中添加文件夹

    在QT项目,常常会有很多头文件和源文件,但是QT Creator中却没有添加文件夹的功能,造成项目代码混乱.   下面是建立文件的步骤: 1.打开工程目录,在目录下建立文件夹,如建立文件SerialP ...

  3. qt creator 源代码中含有中文编译报错

    Tools-Options-Text Editor-Behavior-File Encoding-Default encoding:UTF-8 Tools-Options-Text Editor-Be ...

  4. Qt Creator中使用qss对界面美化没有作用(效果)的问题

    最近在研究qt界面开发,发现使用qss对界面进行美化后效果不错,要比mfc效率高很多,美化效果也很出色.但是在使用qss文件对界面控件进行美化的过程中遇到了个很奇葩的问题,困惑了我好久,今晚又遇到了, ...

  5. Qt Creator中如何选择某个子项目为启动项目

    Qt Creator中的子目录项目类似于Visual Studio中的Solution(解决方案),可以用来管理多个子项目.但是在Qt Creator IDE中由不能像Visual Studio中那样 ...

  6. Qt Creator中的3D绘图及动画教程(参照NeHe)

    Qt Creator中的3D绘图及动画教程(参照NeHe) http://blog.csdn.net/cly116/article/details/47184729 刚刚学习了Qt Creator,发 ...

  7. Qt Creator 源码学习笔记03,大型项目如何管理工程

    阅读本文大概需要 6 分钟 一个项目随着功能开发越来越多,项目必然越来越大,工程管理成本也越来越高,后期维护成本更高.如何更好的组织管理工程,是非常重要的 今天我们来学习下 Qt Creator 是如 ...

  8. Qt Creator介绍

    简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...

  9. 【Qt】Qt Creator介绍【转】

    简介 Qt Creator是使用Qt开发的IDE.Qt支持Windows.Linux/Unix.Mac OS X.Android.BlackBerry.QNX等多种平台,Qt Creator为不同平台 ...

随机推荐

  1. hdu 1534(差分约束)

    Schedule Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  2. Android 用AsyncTask下载网络图片并显示百分比

    1.添加布局文件:activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a ...

  3. [BZOJ3585]mex 主席树

    3585: mex Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 1252  Solved: 639[Submit][Status][Discuss] ...

  4. PreparedStatement 和 Statement 实现基本的批处理

    批处理:若需要对数据库进行多步操作,则就没必要每次都和数据库进行一次通信,这样很消耗资源和时间.则需要将操作进行批处理:    Statement方式来实现批处理        优点:         ...

  5. django CXRF介绍

    CSRF(Cross-site request forgery)跨站请求伪造,是攻击者利用用户的身份操作用户帐户的一种攻击方式.和XSS攻击一样,存在巨大的危害性. 一.攻击方法 1.低级的CXRF攻 ...

  6. HDU 6357.Hills And Valleys-字符串非严格递增子序列(LIS最长非下降子序列)+动态规划(区间翻转l,r找最长非递减子序列),好题哇 (2018 Multi-University Training Contest 5 1008)

    6357. Hills And Valleys 自己感觉这是个好题,应该是经典题目,所以半路选手补了这道字符串的动态规划题目. 题意就是给你一个串,翻转任意区间一次,求最长的非下降子序列. 一看题面写 ...

  7. (12)python 标准库

    模块 如果模块和自己写的程序不在同一个目录,可以通过sys.path.append(路径)把程序引入 import sys sys.path.append('C:/abc')#注意 \ 的方向 意思是 ...

  8. Windows下python的第三方库的安装

    D:\Python27\Scripts\pip.exe install beautifulsoup4

  9. uva658(最短路径+隐式图+状态压缩)

    题目连接(vj):https://vjudge.net/problem/UVA-658 题意:补丁在修正 bug 时,有时也会引入新的 bug.假定有 n(n≤20)个潜在 bug 和 m(m≤100 ...

  10. 整数快速乘法/快速幂+矩阵快速幂+Strassen算法

    快速幂算法可以说是ACM一类竞赛中必不可少,并且也是非常基础的一类算法,鉴于我一直学的比较零散,所以今天用这个帖子总结一下 快速乘法通常有两类应用:一.整数的运算,计算(a*b) mod c  二.矩 ...