QSS的应用

盒子模型:

  • 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();
    }
}

效果

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值