首页 > 其他分享 >Qt之QSS的使用

Qt之QSS的使用

时间:2023-11-27 19:44:17浏览次数:28  
标签:qss Qt color QSS rgb QPushButton 使用

一、QSS介绍

QSS(Quick Style Sheet)是一种用于定义Qt应用程序样式的机制。Qt是一个跨平台的C++应用程序开发框架,而QSS则允许开发者使用类似于CSS(层叠样式表)的语法来定义Qt应用程序的外观和风格。

1.QSS的基本语法

QSS的语法类似于CSS,通过设置属性和值的方式定义样式。例如:

QPushButton {
    background-color: lightblue;
    border: 2px solid darkblue;
    color: white;
}

这个例子定义了一个QPushButton(按钮)的样式,设置了背景颜色、边框和文本颜色。

2.样式选择器

与CSS类似,QSS也支持不同的选择器,可以根据控件的类型、名称、状态等来选择应用样式。

  • QLabel:选择所有标签控件。
  • QPushButton#myButton:选择具有id为“myButton”的QPushButton。
  • QLineEdit:focus:选择获得焦点的QLineEdit。

3.QSS的应用

在资源文件中设置:将QSS样式文件添加到Qt资源文件(.qrc)中,然后通过资源路径加载。

在代码中设置:

QApplication a(argc, argv);
QFile styleFile(":/stylesheets/style.qss");
styleFile.open(QFile::ReadOnly);
QString style = QLatin1String(styleFile.readAll());
a.setStyleSheet(style);

二、QSS的应用步骤与示例  

1.QSS资源文件添加步骤

"右键项目" ----  "Add New...", 选择 "Qt" ---- 再选择"Qt Resource File"

点击按钮"Choose..."后

在"名称"后中添加资源文件"qss",然后点击"下一步(N)"

点击完成后,可以看到添加的资源文件如下图所示

右键"qss_style.qrc" ----  "Add Prefix"

点击OK后

右键"/"文件夹,点击"添加现有文件...",选择"button.qss"

 

2.QSS资源文件的使用

button样式表内容:

/* 正常状态或者鼠标松开按钮的状态 */
QPushButton
{
    background-color:rgb(240,230,200);
    color: rgb(0, 0, 2);
    border-style: outset;
    border-color: beige;
    border-radius: 10px;
}

/* hover按钮悬浮 */
 QPushButton:hover 
{
    background-color:rgb(30, 140, 20);
    border-radius: 10px;
    color: rgb(0, 0, 0);
}

 /* 鼠标按下按钮时的状态 */
QPushButton:checked 
{
    background-color:rgb(20, 150, 90);
    border-radius: 10px;
    color: rgb(255, 255, 0);
}

代码示例:

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    m_pBtnClicked = new QPushButton("Cliecke", this);
    m_pBtnClicked->setFixedSize(100, 40);

    QFile qss_file(":/button.qss");
    if (qss_file.open(QFile::ReadOnly)) {
        QString qss_text = QLatin1String(qss_file.readAll());
        m_pBtnClicked->setStyleSheet(qss_text);
        qss_file.close();
    }
}

 

标签:qss,Qt,color,QSS,rgb,QPushButton,使用
From: https://www.cnblogs.com/TechNomad/p/17860267.html

相关文章

  • 【Flask使用】第6篇:Flask数据库和表单验证。0基础md文档集合(附代码,可自取)
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • Log4j2 结合 SLF4J 使用
    Log4j2结合SLF4J使用了解使用SLF4JAPI配置Log4j2日志记录。我们将查看所需的依赖项、示例配置和使用日志语句的演示。一、Log4j2和SLF4j绑定依赖为了使Log4j2与SLF4J一起工作,我们需要包含以下3个依赖项。log4j-slf4j-impl.jar–Log4j2SLF4J绑定。它......
  • 使用FastReport类库实现zebra斑马打印机的简单操作
    使用FastReport类库实现zebra斑马打印机的简单操作1.首先引入需要的类库  2.需要提前通过fastreport制作一个模板,并制定一些需要替换的变量这个套路的原理就是替换模板中的变量数据,达到输出不同的内容,如果没有替换,变量默认是空白的内容关于模板制作方面后续会在分享 ......
  • inclusion_tag的使用
    #可以生成一片模板中的代码块#使用:5步 -第一步:在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag-第二步:在app中创建templatetags包(包名只能是templatetags,不能改)-第三步:在包内,新建py文件(如:my_tags.py)-第四步:写代码(inclusion_tag) #......
  • 在el-tabs中使用ECharts图表,切换tab时,图表显示错乱
    今天在el-tabs使用ECharts时,发现个问题,在不同tab页绘制不同的图表,默认tab页显示的图表,显示正常,但切换到其他tab标签,其他的图表显示错误,像下面这样其实原因就是切换选项卡时,el-tabs使用的是display来控制的,这个属性会使ECharts无法获取容器宽度导致显示错误。解决这个问题有两种方法......
  • 实用!Arduino平台最强大的“显卡”驱动:Adafruit GFX 图形库8000字详细使用指南
    实用!Arduino平台最强大的“显卡”驱动:AdafruitGFX图形库8000字详细使用指南光锥之外​昆明尚禾农业科技有限公司副总经理​关注他  概述Arduino的Adafruit_GFX库为我们所有的LCD和OLED显示屏提供了通用语法和图形功能集。这使得Arduino示例程序可......
  • Vue Provide/Inject 使用指南
    两个inject工具函数轻松解决严格注入和Hook返回值透传问题!痛苦的经历自从使用了Provide/Inject代码的组织方式更加灵活了,但是这个灵活性的增加伴随着代码容错性的降低。相信只要是真的在项目中引入Provide/Inject的同学,一定一定有过或者正在经历下面的状况:......
  • weditor使用详解
    1.python环境2.安装weditorpipinstall--indexhttps://mirrors.ustc.edu.cn/pypi/web/simple/weditor==0.6.43.安装urllib3执行pip3installurllib3即可,不安装运行weditor会报ModuleNotFoundError:Nomodulenamed'urllib3'4.启动weditor启动之前需使用adb命......
  • Markdown使用规范
    Markdown使用规范目录Markdown使用规范0、使用VSCode编写Markdown代码1、正文段落2、标记3、分割线4、标题5、引用6、列表有序列表无序列表7、代码段段落内嵌代码代码区块8、插入图片9、插入链接10、公式11、表格12、代办事项13、列出全部标题TOC参考资料和网址0、使用VSCode编......
  • 线性规划——Pyhton线性规划求解库PULP的使用
    PuLP是一个用于线性规划(LP)、整数线性规划(ILP)和混合整数线性规划(MILP)问题的Python库。PuLP的全称是"PythonforMathematicalProgramming",它提供了一个简单而强大的工具,使得用户能够定义优化问题、构建数学模型并使用不同的求解器进行求解。PuLP的主要特点之一是其易用性。它允许......