• QT中如何使用样式表文件Qss


    Qt样式表是一个可以自定义部件外观的强大机制,样式表的概念、术语、语法均受到HTML的层叠样式表(Cascading Style Sheets,CSS)的启发。
    样式表可通过QApplication::setStyleSheet()函数将其设置到整个应用程序上,也可以使用QWidget::setStyleSheet()将其设置到指定的部件或子部件上,不同级别均可设置样式表,称为样式表的层叠。样式表也可通过设计模式编辑样式表。

    新建资源文件.qrc

    在这里插入图片描述
    这一步名字随便起,然后下一步直接完成就可以。
    在这里插入图片描述

    新建qss文件,加入资源文件中

    打开QT项目的文件中,在项目中新建一个**.qss文件,然后再QT开发工具中Resources右键,选择【添加现有文件】,选择刚才新建的**.qss。最终结构为下图:
    在这里插入图片描述

    style.qrc下的/为资源前缀,可以认为是目录,也可以认为是命名空间。

    在qss文件中添加样式

    QMainWindow 就是部件的类名,这样设置所有这样的部件都生效
    QMainWindow{
        background-color:#fff;
    }
    
    #connectTest 是设置的部件具体的名称,只有这个名字的部件才生效
    QPushButton#connectTest{
        background-color:#5eb95e;
        border-radius:3px;
        color:white;
        font-size:14px;
    }
    
    :hover 就是css鼠标放上后的效果
    QPushButton#connectTest:hover{
        background-color:#4da84d;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    除了选择器与CSS不一样外,样式的写法与关键字是一样的,会前端CSS这个就不是问题。

    样式表加入程序中,使之生效。

    首先就是把QFile引入进来,在mainwindow.h中

    #include 
    
    • 1

    在mainwindow.cpp中的构造函数中添加一下代码

    	QFile *styleFile;
        styleFile  = new QFile(":/style.qss", this); //获取资源文件的对象
        styleFile->open(QFile::ReadOnly);//只读模式
        QString styleSheet = QString(styleFile->readAll());//读出的数据转成字符串
        qApp->setStyleSheet(styleSheet);//qApp 程序的唯一全局指针 设置样式
        styleFile->close();//最后关闭这个文件
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    效果

    截取的程序的一部分
    在这里插入图片描述

  • 相关阅读:
    MySQL占用内存过大解决方案
    C/C++和Python编程时NULL和None傻傻分不清楚
    【Java+SpringBoot】原材料管理系统_仓库管理系统(源码+远程部署+项目定制开发+代码讲解+答辩教学+计算机毕业设计+计算机毕设)
    [Python进阶] Pyinstaller打包介绍及安装
    640. 求解方程
    深入解析Node.js的process.cpuUsage():监控与优化CPU使用
    Netty框架探索
    同义词替换-批量自动同义词替换软件
    Day04 HTML标记
    Potato靶机
  • 原文地址:https://blog.csdn.net/ren365880/article/details/125897421