近期学习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. php必备树状数组处理方法

    thinkphp必备公共方法 /** * 子元素计数器 * @param array $array * @param int $pid * @return array */ function arra ...

  2. 将双击“root的主文件”弹出的窗口设置为文件浏览器

    1.双击桌面"root的文件夹"图标, 在过去Centos版本之前,每次双击“root主文件夹”都会弹出文件管理窗口: 解决办法:         关闭所有窗口后,重新双击图标: ...

  3. 「kuangbin带你飞」专题十四 数论基础

    layout: post title: 「kuangbin带你飞」专题十四 数论基础 author: "luowentaoaa" catalog: true tags: mathj ...

  4. 17、Flask实战第17天:Flask-cookie

    cookie的基本概念 在网站中,http请求是无状态的.也就是说即使第一次和服务器连接并且登录成功后,第二次请求服务器依然不能知道当前请求的是哪个用户. cookie的出现就是为了解决这个问题,第一 ...

  5. 【tarjan求割顶】BZOJ2730-[HNOI2012]矿场搭建

    [题目大意] 煤矿工地可以看成是由隧道连接挖煤点组成的无向图.为安全起见,希望在工地发生事故时所有挖煤点的工人都能有一条出路逃到救援出口处.于是矿主决定在某些挖煤点设立救援出口,使得无论哪一个挖煤点坍 ...

  6. 10.3(Java学习笔记)JDBC时间操作

    一.时间分类 数据库     java类 Date  ---- java.sql.Date   表示日期 yyyy-MM--dd (年月日) Time  ----java.sql.Time    表示 ...

  7. iOS数据库的基本使用

    今天总结下数据库的基本使用方法: iOS使用的数据库一般就是sqlite3,在使用该数据库前一定要先导入数据库框架,否则会出错,接下来引入头文件#import<sqlite3.h> 在工程 ...

  8. hadoop InputSplit

    /** * <code>InputSplit</code> represents the data to be processed by an * individual {@l ...

  9. Word2010插入页码分节符

    不是分页符,分节符主要是为了插入前后两种不同类型的页码,比如前面查罗马数字,从目录开始插入阿拉伯数字.                 

  10. SecureCRT的一些问题解决

    按下退格键发送删除命令 设置缓冲 拷贝与粘贴 多标签切换   ctrl + tab . 如果同时按下shift,可以方向切换