QSS的应用

news2024/11/16 3:21:59

盒子模型:

  • margin  边距
  • border   边框
  • padding 内边距
  • content  内容

 常用的一些属性:

background背景
background-color背景颜色
background-image背景图片
background-position对齐方式
border-(top、left、bottom、right)边界
border-color-(top、left、bottom、right)边界颜色
border-image边框图像
border-radius边框半径
border-style边框样式
border-width边框高度
color文本颜色
font字体
font-family字体种类
font-size字体大小
font-style字体风格
font-weight字体粗细
height子控件的高度
width子控件的宽度
top botton left  right上下左右的偏移量
icon图标
icon-size图标大小
image图片
image-position图片位置
margin边距
max-(height、width)最大长度和宽度
min-(height、width)最小长度和宽度
opacity透明 0为透明255不透明
padding内边距
position   relative|absolute相对坐标  绝对坐标
selection-background-color所选文本或项目的背景
selection-color所选文本或项目的前景
spacing间距
text-align对齐方式

border-style

none无样式
solid实线
double双线
dashed虚线
inset凹陷
outset突出
dotted点划线
groove槽状

例一:盒子的使用

QPushButton
{
	background-color: rgb(161, 227, 255);//背景颜色
	font: 75 10pt "Arial";//字体
    border:1px;//边框大小
    border-style:solid;//边框风格
    border-color:rgb(255, 25, 217);//边框颜色
    min-height:200px;
    min-width:200px;
    margin:10px;//外边距
    padding:10px;//内边距
    
}

 例二:实现一个圆形控件

把一个QPushButton拖入ui界面中,设置控件大小为(100,100)

QPushButton
{
	background-color: rgb(244, 255, 140);//背景颜色
    border-radius:50%;//半径
}

 例三:伪状态的使用

QPushButton
{
	background-color: rgb(244, 255, 140);
    border-radius:50%;
}
QPushButton:hover
{
	background-color: rgb(95, 255, 87);
}
QPushButton:pressed
{
	background-color: rgb(255, 15, 19);
}

起始状态:

鼠标悬停:

 鼠标点击:

 

使用文件导入样式表

步骤为:

  • 添加qss文件:  点击新建文件  选择 General  Empty File   创建qss文件
  • 创建资源文件:点击新建文件  选择 Qt  QtResource File  创建资源文件
  • 资源文件中添加qss文件:创建一个前缀,前缀中添加qss文件
  • 获取该qss文件的路径:右键再资源文件中的qss文件 点击Copy Path,获取路径

1.首先右键点击项目:

 2.选择General   Empty File

3.文件名为 myqss.qss(前缀可以随意)

然后可以编写qss

在ui中添加一个QPushButton 控件

在myqss.qss中添加以下信息

4.然后再添加一个资源文件 

 文件名为resource

创建好后点击 Add Prefix

 前缀可以自己设置

 然后添加文件,点击Add Files,选择你的qss文件

 添加完后,点击左下角的构建项目,完成文件的添加

widget.h文件中添加

#include<QFile>//头文件


QFile *file=nullptr;//添加一个文件对象

在 widget.cpp中实现对myqss.qss的使用

获取myqss.qss的文件路径

    file=new QFile(":/qss/myqss.qss",this);
    file->open(QFile::ReadOnly);//只可读
    QString style=tr(file->readAll());//读取信息
    qApp->setStyleSheet(style);//设置样式
    file->close();//关闭文件

样式添加完成:效果和上面的伪状态的使用相同

不规则窗体

主要通过Qt中的mask(部件遮挡)来实现不规则窗体。

实现功能为,去除窗口边框,实现不规则窗体,使用鼠标左键可以移动窗体,点击右键关闭窗体

在widget中添加:

    void paintEvent(QPaintEvent *event);//画家事件
    void mousePressEvent(QMouseEvent *event);//鼠标点击事件
    void mouseMoveEvent(QMouseEvent *event);//鼠标移动事件
    QPoint point;//获得位置

在widget.cpp中添加:

//头文件
#include<QPixmap>
#include<QBitmap>
#include<QPainter>

添加资源文件:

 

构造函数中添加:

    QPixmap p(":/image/456.png");
    p=p.scaled(300,300);//重置图片大小
    resize(p.size());
    setMask(p.mask());
    setWindowFlags(Qt::FramelessWindowHint);//设置无窗口框架边界

 事件的实现:

void Widget::paintEvent(QPaintEvent *event)//画家事件
{
    QPainter painter(this);//创建一个画家
    painter.drawPixmap(0,0,QPixmap(":/image/456.png"));//绘制图片
}
void Widget::mousePressEvent(QMouseEvent *event)//鼠标点击事件
{
    if(event->button()==Qt::LeftButton)//左键
    {
        point=event->globalPos()-frameGeometry().topLeft();//获取位置差
        event->accept();
    }
    if(event->button()==Qt::RightButton)//右键
    {
        close();//关闭窗口
    }
}
void Widget::mouseMoveEvent(QMouseEvent *event)//鼠标移动事件
{
    if(event->buttons()&Qt::LeftButton)//左键移动的话
    {
        move(event->globalPos()-point);//移动窗体
        event->accept();
    }
}

效果

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/12311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单调栈问题---(每日温度,下一个更大元素Ⅰ)

代码随想录day 58 单调栈问题— 每日温度,下一个更大元素Ⅰ 文章目录1.leetcode 739. 每日温度1.1 详细思路及解题步骤1.2Java版代码示例2.leetcode 496. 下一个更大元素 I2.1 详细思路及解题步骤2.2Java版代码示例1.leetcode 739. 每日温度 1.1 详细思路及解题步骤 这题会用到…

Spark RDD编程模型及算子介绍(一)

文章目录RDD编程模型介绍RDD的两种算子及延迟计算常见的Transformation算子RDD编程模型介绍 RDD是Spark 对于分布式数据集的抽象&#xff0c;它用于囊括所有内存中和磁盘中的分布式数据实体。每一个RDD都代表着一种分布式数据形态。在RDD的编程模型中&#xff0c;一共有两种算…

Linux-服务管理

服务介绍 服务本质就是进程&#xff0c;但是是运行在后台的&#xff0c;通常都会监听某个端口&#xff0c;等待其他程序的ing求&#xff0c;比如mysqld&#xff0c;sshd&#xff0c;防火墙灯&#xff0c;因为又称为守护进程 如何管理服务 CentOS7.0前使用service命令 servi…

SpringBoot-配置

目录 起步依赖原理分析 配置文件分类 YAML YAML&#xff1a;基本语法 YAML&#xff1a;数据格式 YAML&#xff1a;参数引用 读取配置内容 profile Profile-小结 内部配置加载顺序 外部配置加载顺序 起步依赖原理分析 在spring-boot-starter-parent中定义了各种技术的…

[附源码]Python计算机毕业设计GuiTar网站设计

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

【学习笔记】《模式识别》4:贝叶斯判别准则

贝叶斯判别准则 文章目录贝叶斯判别准则一、研究对象及相关概率1. 两类研究对象2.概率3. 条件概率4. 模式识别中的三个概率5. 两对条件概率的区别二、贝叶斯决策1.最小错误率贝叶斯决策2. 最小风险贝叶斯决策3. (0-1)损失最小风险贝叶斯决策4.正态分布模式的贝叶斯决策三、贝叶…

RFID在钢筋仓库管理中的应用

RFID在钢筋仓库管理中的应用 应用背景 随着经济的迅速发展&#xff0c;带动了钢材业的迅速发展&#xff0c;钢筋的使用量也在改革开放后有了近370多倍的增长&#xff0c;如此大量的钢筋在库存管理&#xff0c;盘点&#xff0c;防盗&#xff0c;各种型号发货、防窜货上等等一系…

图片链接或pdf链接通过浏览器打开时,有时可以直接预览,有时却是下载,为什么?

在前端开发中&#xff0c;有时候需要对一些文件链接进行特殊处理&#xff0c;比如对于一些图片链接或者PDF链接&#xff0c;有时我们需要通过浏览器打开进行预览&#xff0c;有时又不希望通过浏览器进行打开&#xff0c;而是希望能够直接下载到本地。但现实效果却往往跟我们相反…

硅麦驱动开发及调试(pdm>>I2S>>pcm)

pdm 协议 PDM接口只有两根信号线&#xff1a; PDM_CLK 时钟信号。 PDM_DATA 数据信号。 I2S协议 数据发送规格 I2S在BCLK的下降沿发送数据&#xff08;发送&#xff09;&#xff0c;在上升沿进行数据采样&#xff08;接收&#xff09;。每次是先发送最高位&#xff0c;最后…

Hadoop概述

Hadoop概述 Hadoop介绍 狭义上Hadoop值的是Apache的一款开源软件。 用java语言实现开源软件框架 允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理 Hadoop核心组件 Hadoop HDFS(分布式文件存储管理系统)&#xff1a;解决海量数据存储 Hadoop YARN(集群资源管理…

3-2、python内置数据类型(列表和元组)

文章目录序列列表列表的创建列表的基本特性连接操作符和重复操作符成员操作符&#xff08;in和not in&#xff09;索引切片for循环列表的常用方法增加修改&#xff08;通过索引和切片重新赋值&#xff09;查看删除其他操作元组&#xff08;和列表相比&#xff0c;不能增删改元素…

30分钟带你精通Git使用

一、 版本控制工具 1.1. 什么是版本控制系统&#xff1f; 版本控制系统&#xff08;Version Control System&#xff09;:是一种记录一个或若干文件内容变化&#xff0c;以便将来查阅特定版本修订情况的系统。版本控制系统不仅可以应用于软件源代码的文本文件&#xff0c;而且…

[附源码]SSM计算机毕业设计班级风采网站JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

TIA博途中累计流量的两种计算方法示例

TIA博途中累计流量的两种计算方法示例 如下图所示,首先,我们要了解累计流量的含义: 即t1至t2时刻,对瞬时流量求定积分,由上图可知,t1至t2的定积分,即蓝色部分的面积,那么直接求这个面积是有难度的,我们只能用近似的方法来求取, 如下图所示,把该部分面积分割成一个个…

最简单的git图解(git stash)

大家平时开发过程中肯定遇到过这样的情况&#xff1a;代码写了一半&#xff0c;但是需要紧急修改一个bug&#xff0c;还是在当前项目中修改&#xff0c;这时怎么办呢&#xff1f;把写了一半的代码进行提交&#xff1f;可能编译还通不过&#xff0c;或是启动不了&#xff0c;要是…

Java项目:SSH学生学籍管理系统及教务管理系统

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 本系统包含管理员、教师、学生三种角色; 管理员角色包含以下功能&#xff1a; 管理员登录,学科管理,班级管理,教师管理,学籍信息管理,课表管理…

外贸软件助力国际贸易企业业财共享数字化转型升级

外贸企业数字化转型新机遇丨汇信外贸软件助力业财一体共享升级 随着国际化的进程不断加速&#xff0c;国际贸易市场的发展&#xff0c;使得外贸企业的业务范围不断扩大&#xff0c;海量的资源信息在世界各地不断产生。为了应对国际贸易信息传递的及时性&#xff0c;关于财务信…

[MySQL]复杂查询(进阶)

专栏简介 :MySql数据库从入门到进阶. 题目来源:leetcode,牛客,剑指offer. 创作目标:记录学习MySql学习历程 希望在提升自己的同时,帮助他人,,与大家一起共同进步,互相成长. 学历代表过去,能力代表现在,学习能力代表未来! 目录 1.新增 2. 聚合查询 2.1 聚合函数 3. 分组查询…

Web UI 自动化测试:如何使用隐私模式进行测试

来啦老铁&#xff01; 这两天有个任务需要在桌面端 UI 自动化中使用隐私模式进行测试&#xff0c;之前没有用过&#xff0c;且在调研的时候还是小小花了点时间各种查资料的&#xff0c;因此做一下记录&#xff1b; 学习路径 1、Chrome 浏览器配置&#xff1b; 2、Edge 浏览…

电脑换cpu要重装系统吗

​cpu是一台电脑的控制以及运算核心&#xff0c;有十分重要的作用&#xff0c;不少小伙伴会遇到更换cpu的问题&#xff0c;所以小伙伴会提前了解换cpu要重装系统吗或者换cpu后bios如何设置的这类问题&#xff0c;接下来小编就为大家带来了详细的介绍&#xff0c;感兴趣的用户可…