QT QSS简单使用

2023-11-08

  之前完成的QT程序完成逻辑控制后,界面全都使用图片填充的方式来做美化,但是使用到的组件看上去很丑,因此上网简单学习之后做总结如下:(之前也未学习过CSS等知识属于纯小白,如有错误,不吝赐教)。

1.新建工程(略) 

  新建一个工程用于本次demo的学习。使用的是qweight,并且在文件目录内新建文本,重命名为qss.qss。

2.添加资源文件并读取QSS文件

  新建资源文件,并将刚新建的QSS文件加入到目录中。

 

   之后在weight构造函数里添加如下代码:

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    QFile file(":/qss.qss");
    file.open(QFile::ReadOnly);
    if(file.isOpen()){
        QString styleSheet = QLatin1String(file.readAll());
        qApp->setStyleSheet(styleSheet);
        file.close();
        qDebug() << "success";
    }
    else
    {
        qDebug()<< "error";
    }
}

  头文件里需要引入QFile和QDebug。使用QFile打开qss文件,如果打开成功,使用qstring读文件中的内容,用qApp->setStyleSheet解析qss文件。运行后控制台打印success第一步就成功啦。

3.qss文件编写验证

  现在ui中添加如下组件方便后续进行qss功能验证:

编译运行后效果如下:

 在qss.qss文件中添加如下代码:

*{
background-color: rgb(80, 80, 80);
}

再次编译运行后:

 至此成功使用qss文件改变ui界面就完成啦。至于其他的qss所能使用的功能可以查阅相关手册。

另附其他一些简单用法:

 qss文件(添加一些按钮点选的样式改变)

*{
background-color: rgb(100, 100, 100);
}
#toolBar {
background-color: rgb(25, 25, 25);
}
#toolBar QPushButton{
color: rgb(250, 250, 250);
background-color: transparent;
}
#toolBar QPushButton:hover{
color:rgb(255, 170, 0);
}
#toolBar QPushButton:pressed{
background-color: rgba(255, 255, 255, 80);
}
#toolBar QPushButton#btnClose:hover{
color: rgb(255, 0, 0);
}

 使用效果:

   

注:toolBar为Layout,需要更改该类为QWeight。

最后感谢大佬提供的学习资料:Qt样式表(QSS)Demo:黑色扁平风格_龚建波的博客-CSDN博客_qss样式表demo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT QSS简单使用 的相关文章

  • MAC 上的 QT/C++ - 未设置应用程序图标

    我正在努力解决的奇怪问题 在与我的 pro QT 项目文件相同的文件夹中 我有一个 Resources myIcon png 我试图将其设置为我构建的应用程序的图标 在 OSX 上运行 我阅读了文档 它建议在 pro 文件中添加 ICON
  • 从 QML 实例化 C++ 对象会产生巨大的内存使用开销

    实例化一个QObjectC 堆中的派生类为每个对象提供了大约 160 个字节 通过注册相同的对象qmlRegisterType 用于从 QML 创建并通过以下方式动态创建对象createObject 每个对象给我 2000 多个字节 这是完
  • 仅将非模态 QDialog 窗口放置在我的应用程序顶部,而不是所有应用程序顶部

    我有一个 QDialog 窗口 它应该始终位于我的应用程序顶部 它不是模态的 用户可以随时与对话框和主应用程序进行交互 使用窗口保持在顶部提示在某种程度上实现了这一点 但是 该对话框仍然位于所有其他正在运行的应用程序 例如记事本 chrom
  • QGraphicsView 和 eventFilter

    这个问题已经困扰我两天多了 所以我想我应该问一下 我在Win7上使用Qt 4 5 3 用VC2008编译 我有 MyGraphicsView 继承 QGraphicsView 和 MyFilter 继承 QObject 类 当我将 MyFi
  • Qt程序部署到多平台,如何?

    我是 Qt 编程新手 我想开发一个程序 我想在 Windows Linux ubuntu 和 Mac 上运行 听说Qt支持多平台应用程序开发 但我的问题是 在我部署或编译后 任何 Qt 库都需要在 Ubuntu 中运行这个应用程序吗 如果您
  • 如何在按下托盘图标菜单操作时执行功能?

    int main int argc char argv QApplication oApp argc argv QAction action1 QMenu menu QSystemTrayIcon TrayIcon QIcon favico
  • 如何创建QWidget的屏幕截图?

    我在 Qt Creator 中做作业 在其中绘制 QWidget 并且需要保存此 QWdiget 的某些部分 我试图解决这个问题 QPixmap pixmap pixmap copy rectangle rectangle is part
  • Qt WinRT 应用程序无法访问文件权限被拒绝

    我需要使用 Qt 和 FFMPEG 开发 WinRT 应用程序 我根据指令构建了 WinRT 的 ffmpeghere https github com Microsoft FFmpegInterop我可以将库与我的项目链接起来 现在我需要
  • 如何在带有预编译头的项目中使用google protobuf

    我有一个包含多个项目的解决方案 我的项目 但不是全部 使用预编译头 我决定使用 protobuf 但遇到了一个问题 在 protoc exe 从 proto 生成 pb h 后 我尝试包含标头并收到错误 预编译标头未包含在 pb h 中 我
  • 如何使用 Qtimer 添加 1 秒延迟

    我目前有一个方法如下 void SomeMethod int a Delay for one sec timer gt start 1000 After one sec SomeOtherFunction a 这个方法实际上是一个附加到信号
  • 加权 Voronoi 的 CGAL 2D APOLLONIUS 图 - 如何生成和获取面和顶点?

    我正在尝试根据阿波罗尼乌斯图生成加权沃罗诺伊 我正在使用 CGAL 库 我找不到如何从 apollonius 获取面和顶点的好例子 我有以下类型定义 typedef double NT typedef CGAL Cartesian lt N
  • 向 Qt 样式表添加特异性时丢失样式

    这是我的代码 const QString STYLE SHEET background color rgba x x x y border 1px solid gray border radius 0px border top 1px so
  • 如何创建用于 QML 的通用对象模型?

    我想知道是否有任何宏或方法如何将 Qt 模型注册为 QObject 的属性 例如 我有AnimalModel http doc qt io qt 5 qtquick modelviewsdata cppmodels html qabstra
  • 为 Windows 98 编译 Qt

    我需要支持 Windows 98 Qt 文档声称这是可能的 但没有说明 Qt 4 6 的分布式二进制文件不能在 Win98 上运行 而且我采样的大多数 Qt 应用程序也不能在 Win98 上运行 对于几个确实在 98 上运行的应用程序 我询
  • 如何获取 QTableView 的标题列表?

    我有一个QTableView我的对话框中的对象 我需要访问该表的水平标题并将它们放入QStringList object 尽管进行了大量搜索 但我在 Qt 文档中找不到如何获取此标头列表 编辑 我发现的最接近的地方是this https w
  • Qt - 设置不可编辑的QComboBox的显示文本

    我想将 QComboBox 的文本设置为某些自定义文本 不在 QComboBox 的列表中 而不将此文本添加为 QComboBox 的项目 此行为可以在可编辑的 QComboBox 上实现QComboBox setEditText cons
  • Qt 是否已经有了自己的 new 和 delete 运算符?

    我正在使用一个QGraphicsScene小部件并在其上显示一些点QGraphicsRectItem 这意味着要拨打很多电话new addItem 当出现时 并且removeItem delete摆脱未使用的点 当然 对于性能问题 我已经实
  • QSerialPort 中的 readAll() 不包括最后发送的响应

    我正在使用 Qt 来控制串行设备 如果我向串行设备发送命令 我会执行类似的操作serial gt write command r n 我制作了一个按钮 它将纯文本小部件内的文本更改为串行端口的响应 为了获得串口的响应 我使用serial g
  • Qt 5.3 无法使 QCompass (QSensor) 在 Windows 8.1 上工作

    我无法让传感器在我的 Asus Transformer T100 上工作 磁力计和指南针无法启动 并且我从加速度计获得假值 始终 x 0 y 9 8 z 0 即使使用我的笔记本电脑 我总是得到相同的结果 第一段文字编辑 Initialisa
  • Qt - 获取互联网上托管的网页的源代码(HTML 代码)

    我想获取网页的源代码 HTML 例如StackOverflow的主页 这是我到目前为止编写的代码 QNetworkAccessManager manager QNetworkReply response manager get QNetwo

随机推荐

  • 设计模式之(七)-----模板方法模式

    我先设计个类图 非常简单的实现 你要悍马模型 我就给你悍马模型 先写个抽象类 然后两个不同型号的模型实现类 那我们把这个程序实现出来 HummerModel抽象类的程序清单如下 java view plain copy print pack
  • 今年金三银四不跳槽

    金三银四 又到了跳槽的季节 因为我的简历挂在网上 boss 直聘上 有些公司hr 主动聊天 猎头也打电话来 昨天中科院也打电话邀请面试 一般都是在25k 以上 当然 邀请投简历不代表面试 面试不代表能通过 通过不代表能拿offer 拿off
  • vscode中不能使用命令pnpm

    问题描述 在vscode中只能使用npm 其他的pnpm nr等等命令运行就会报错 但是用cmd在项目路径下运行又是可行的 解决方案 vscode邮件以管理员身份运行 不是管理员 会无权限更改 在vscode的中断输入命令get Execu
  • generator代码自动生成工具(动态生成注释、类注解、方法注解等)适用于swagger等需要配置实体类的场景

    generator代码生成器大家都不陌生 但是在实际的业务场景中 实体类只有属性 getter setter方法不满足需求 还需要手动去添加需要的功能 比如项目使用swagger生成api文档时 需要在实体类上标注 ApiModel 属性上
  • Java爱心代码

    public class Love public static void main String args throws InterruptedException int count 0 for float y 2 5f y gt 2 0f
  • 一篇文章了解软件测试基础知识

    今天带大家了解软件测试的基础知识 希望对你们有帮助 有说的不好的地方 还请多多指教 一 基础知识点 1 软件测试基础知识 2 测试流程 3 测试方法 4 测试用例设计 5 bug管理 二 课程内容 1 1 软件测试基础知识 1 1 1 软件
  • wav 音频按照时长切割成多个小音频文件(python 代码可运行)

    语音wav 分割写成函数 方面以后复用 测试效果正常 太长了不方便处理 import librosa import soundfile def wavfile split filename split at timestamp 20 min
  • ‘mvn’ 不是内部或外部命令,也不是可运行的程序 或批处理文件

    话不多说 先来一张图 提示 mvn 不是内部或外部命令 也不是可运行的程序 或批处理文件 这说明 Windows系统找不到mvn相关的命令 基本上就是环境变量没有配置 或者配置出错 操作步骤 搜索环境变量 打开 点击环境变量 在用户变量中
  • 编程真的有现在网上传的那么简单吗?

    任何岗位做好都不简单 做到行业顶尖水平 绝不是仅仅靠努力 特别在编程得世界里 对数学造诣要求很高 而有些人一出生在某方面天赋就很高 但绝大部分都是普通人 普通人学习半年做到入门级真不难 但是要做到知乎年薪水平 是非常难 大量的程序员薪资普遍
  • React-Redux 老版本 connext的使用记录(只为记录)

    注 新版 redux 用法中 使用useSelector useDispatch替代connect 这里只做老用法的记录使用 Redux最新用法参考 个人React专栏react初级学习 React Redux是一个用于将React应用程序
  • ReenTrantLcok Condition 原理笔记

    参考 深入剖析基于并发AQS的 独占锁 重入锁 ReetrantLock 及其Condition实现原理 https blog csdn net javazejian article details 75043422 1 Condition
  • 使用什么软件编辑HTML5代码?

    在HTML5开发过程中 有许多不同的文本编辑器和集成开发环境 IDE 可供选择 用于编辑和编写HTML CSS和JavaScript代码 以下是一些常用的HTML5代码编辑工具 Visual Studio Code VS Code VS C
  • java file文件读取文件内容_java中的File文件读写操作

    之前有好几次碰到文件操作方面的问题 大都由于时间太赶而没有好好花时间去细致的研究研究 每次都是在百度或者博客或者论坛里面參照着大牛们写的步骤照搬过来 之后再次碰到又忘记了 刚好今天比較清闲 于是就在网上找了找Java经常使用的file文件操
  • chm文件打开后,只能看到目录,不显示内容解决方法

    右键单击对应chm文件 选择 属性 打开 常规 选项卡 点击 属性区域 的 解除锁定 文件即可打开 并查看内容
  • 深度学习速成(12)LSTM的参数

    1 LSTM的参数 在PyTorch的torch nn模块中 LSTM 长短时记忆网络 的参数包括以下内容 1 input size 输入向量的特征维度 2 hidden size 隐藏状态的维度 也是LSTM单元中隐层状态的维度 3 nu
  • Random类中的nextInt()函数

    Random的两个nextInt函数 1 Random的nextInt 是无参函数 用来随机生成 范围之间的整数 2 Random的nextInt int n 函数用来随机生成 0 n 之间的整数 切记是前闭后开
  • clion报错:该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

    windows下clion报错 该文件包含不能在当前代码页 936 中表示的字符 请将该文件保存为 Unicode 格式以防止数据丢失 我的clion在windows下因为minGW安装问题 暂时用的是微软Visual Studio 的环境
  • linux NPS 服务端安装 +linux 客户端安装

    本文参考博客 https blog csdn net m0 57776598 article details 123674866 一 下载安装包 1 官方下载 官方下载地址 https github com ehang io nps rel
  • C语言每日一练Day2 对于常量的定义

    1 获取用户输入的商品价格 价格在一百以内 输出找零 1 获取用户输入的商品价格 价格在一百以内 输出找零 include
  • QT QSS简单使用

    之前完成的QT程序完成逻辑控制后 界面全都使用图片填充的方式来做美化 但是使用到的组件看上去很丑 因此上网简单学习之后做总结如下 之前也未学习过CSS等知识属于纯小白 如有错误 不吝赐教 1 新建工程 略 新建一个工程用于本次demo的学习