我认为qt样式表对于专注于ui交互的人,其在qt的地位不亚于信号与槽的地位。通过qt样式表可以展示绝大部分你可以想象得到的风格。

qt样式表的使用是先将要特例化的样式建立在后缀qss的文件中,在程序启动时加载进来,那些在qss文件中涉及的样式将会替换掉qt各个界面元件默认的样式。

要将qss加载在程序中,需要3个步骤:

1)在qt资源文件.qrc中加入的qss资源,例如:

<RCC version="1.0">
    <qresource prefix="/">
        <file>qss/skin.qss</file>
    </qresource>

</RCC>

2)在程序中读取qss文件信息并设置,示例:

//设置界面皮肤
bool setSkin(QApplication* const app, QString const &skinFile)
{
    QFile file(skinFile);
    if (QFile::exists(skinFile) && file.open(QIODevice::ReadOnly))
    {
        //设置默认风格,有Windows WindowsXP WindowsVista Motif CDE Plastique Cleanlooks多种选择
        QApplication::setStyle(QStyleFactory::create("WindowsXP"));
        QString strTemp;
        QTextStream in(&file);
        while (!in.atEnd())
        {
            strTemp.append(in.readLine());
        }
        file.close();
        app->setStyleSheet(strTemp);
    } else{
        return false;
    }
    return true;
};

//主函数入口
int main(int argc, char *argv[])
{
    //app构造
    QApplication app(argc, argv);
    //主窗口
    MainWindow w;
    //设置界面皮肤
    setSkin(&app ,":/qss/skin.qss");
    w.show();
    return app.exec();
};

3)在qss中将需要变更样式的元件进行重新设计,例如要改变qtreeview的风格

/******************      QTreeView       **************/
QTreeView {
    /*alternate-background-color: yellow;*/
    font-size:12px;
    font-family:"Courier New";
    show-decoration-selected: 1;
}

QTreeView::item {
    border: 1px solid #d9d9d9;
    border-top-color: transparent;
    border-bottom-color: transparent;
}
/* 鼠标在QTreeView上面移动时的效果 */
QTreeView::item:hover {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1);
    border: 1px solid #bfcde4;
    /*background-color:rgba(0,230,230,127);*/
}

QTreeView::item:selected {
    border: 1px solid #0055ff;
    /*background-color:rgba(0,230,0,127);*/
}
/* 节点被选中激活时的效果 */
QTreeView::item:selected:active{
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #0028ff, stop: 1 #0055ff);
}

QTreeView::item:selected:!active {
    background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #0000ff, stop: 1 #0028ff);
}

QTreeView::branch:has-siblings:!adjoins-item {
    border-image: url(:/images/vline.png)0;
}

QTreeView::branch:has-siblings:adjoins-item {
    border-image: url(:/images/branch-more.png)0;
}

QTreeView::branch:!has-children:!has-siblings:adjoins-item {
    border-image: url(:/images/branch-end.png)0;
}

QTreeView::branch:has-children:!has-siblings:closed,
QTreeView::branch:closed:has-children:has-siblings {
    border-image: none;
    image: url(:/images/branch-closed.png);
}

QTreeView::branch:open:has-children:!has-siblings,
QTreeView::branch:open:has-children:has-siblings {
    border-image: none;
    image: url(:/images/branch-open.png);
}

treeview_img:

关于样式表更多更深层级的知识可参考:http://doc.qt.io/qt-4.8/stylesheet-examples.html

Qt Style Sheets(qt样式表)相关推荐

  1. Custom Looks using Qt Style Sheets

    2019独角兽企业重金招聘Python工程师标准>>> With the introduction of Qt Style Sheets, styling Qt widgets ha ...

  2. 样式表(05):【纲】Qt Style Sheets Reference [官翻]

    文章目录 定制样式的小部件列表 属性列表 图标列表 属性类型列表 伪状态列表 子控件列表 Qt Style Sheets Reference Qt样式表支持各种属性.伪状态和子控件,使得定制小部件的外 ...

  3. Qt样式表参考:Qt Style Sheets

    Qt样式表支持各种属性.伪状态和子控件,使得定制小部件的外观成为可能. 可设置样式的小部件列表 下表列出了可以使用样式表自定义的Qt小部件: Widget 如何设计风格 QAbstractScroll ...

  4. Qt Style Sheets指定自定义控件样式

    qt样式表设置中,直接指定QWidget.QPushButton或者其它的qt界面类都可以设置它本身及其子类相关的样式,如: QLineEdit { background: yellow }QChec ...

  5. Qt学习笔记--QSS样式表

    样式表QSS QSS 简介 语法规则 选择器 子控件 用法 常见子控件 伪状态 用法 常见伪状态 常用样式属性 经典样式表 QSS-白色靓丽 QSS-黑色炫酷 实现方法 效果展示 对应样式表 QSS ...

  6. Qt 常用控件样式表及遇到的问题

    Qt界面美化常用到样式表,用好样式表能达到不一样的效果. 样式表用法 常用控件样式表用法如下: /**********子界面背景**********/ QWidget#customWidget {ba ...

  7. Qt Style Sheets(QSS)参考

    综述:Qt Style Sheets QSS语法:The Style Sheet Syntax Style Rules,样式规则,属性汇总:List of Properties Selector Ty ...

  8. 在Qt Designer中使用样式表

    在Qt Designer中使用样式表 在Qt Designer中使用样式表 在Qt Designer中使用样式表 从Qt 4.2开始,可以使用样式表编辑器在Qt Designer中编辑样式表. 设置样 ...

  9. UIElements开发人员指南9 样式(Style)和Unity样式表(style sheets)

    样式(Style)和Unity样式表(style sheets) 每个VisualElement都包含样式属性,用于设置元素的尺寸以及元素在屏幕上的绘制方式,例如backgroundColor或bor ...

最新文章

  1. 解决端口 windows10 端口被占用的问题
  2. Sync 攻击原理及防范技术
  3. Webpack模块化原理简析
  4. 程序员新人怎样在复杂代码中找 bug?
  5. hbuilderx怎么添加断点_【高考语文题库】高考一直提分提不上去该怎么办?同一卷高考押题语文答案,助你再提30分...
  6. 5分钟了解什么是真正的深度学习
  7. vue2.0项目结构和打包发布
  8. 红帽发布虚拟化策略 产品即将上市
  9. 考研数学一之高数上册学习计划
  10. 《C语言程序设计:问题与求解方法》——2.15节算术表达式
  11. 华为交换机怎么关闭信息提示_iPhone 关闭支付宝自动扣费服务提示“无法解约”怎么办?...
  12. 国内机场代码(IATA)
  13. C盘清理工具Dism++教程
  14. mysql 主键 sql语句_Mysql主键相关的sql语句集锦
  15. 深度吸引子网络 Deep attractor Net单通道语音分离文献汇总
  16. create table
  17. 居家第二十六天烤鸡翅
  18. 昌吉学院计算机工程系毕业后安排工作嘛,经济贸易分院成功举办昌吉学院与我院本科教学与学生工作对接会...
  19. 信息学奥赛一本通1336:寻找树根和孩子(图论算法-树)详细讲解
  20. Mac 开发者常用的工具

热门文章

  1. opensuse download
  2. VC使用CRT调试功能来检测内存泄漏
  3. 使用ISA Server发布具有Edge角色的Exchange Server环境
  4. Xamarin Essentials教程数据传输DataTransfer
  5. Hydra 8.4/8.5新增功能
  6. Unity 游戏开发技巧集锦之创建部分光滑部分粗糙的材质
  7. 内存储器和cpu一起构成了计算机,计算机系统的组成
  8. java 对变量加锁_Java最全锁剖析:独享锁/共享锁+公平锁/非公平锁+乐观锁/悲观锁...
  9. bootstrap怎么用_不用自己写css,不用bootstrap,写样式有tailwindcss就足够了
  10. putty ubuntu服务器 上传文件,教你如何使用PuTTY上传文件?