QPushButton QSS(一):按钮常用qss

本文实现如下按钮的三种qss样式

按钮基本样式

bash 复制代码
QPushButton
{
	color: green; /*前景色,文本颜色*/
	background-color: rgb(223,223,223);  /*背景色*/
	border-style: outset;  /*边框风格*/
	border-width: 0.5px;    /*边框宽度*/
	border-color: rgb(10,45,110);        /*边框颜色*/
	border-radius: 10px;              /*边框圆角*/
	font: bold 22px;                  /*字体*/
	min-width: 100px;                 /*控件最小宽度*/
	min-height: 20px;                  /*控件最小高度*/
	padding: 4px;                      /*内边距*/
}

QPushButton:flat
{
	border:2px solid red;
}

/*按钮被按下时样式*/
QPushButton#pushButton:pressed
{
	background-color: rgb(40,85,20);  /*背景色*/
	border-style: inset;

	padding-left: 6px;
	padding-top: 6px;
}

/*鼠标悬浮时效果*/
QPushButton:hover
{
	color:#0000ff;;
	background-color:rgb(210,205,205);
	border-style:inset;
	padding-left:8px;
	padding-top:8px;
}

/*按钮被禁用时样式*/
QPushButton:disabled
{
	color: blue;
	border-color: brown;
	background-color:#363636;  /*背景色*/	
}

图片背景按钮

针对按钮设置正常状态、鼠标悬停(hover)、按钮点击(press)设置不同伪装态样式,实现不同状态下图片切换效果

cpp 复制代码
QPushButton
{
	background-image:url(":/resources/vip_normal.png");
	background-position:center;
	background-repeat:no-repeat;
	border:none
}

QPushButton:hover
{
	background-color:rgb(10,210,210);
	background-image:url(":/resources/vip_hover.png");
}

QPushButton:pressed
{
	background-color:rgb(255,0,0);
	background-image:url(":/resources/vip_press.png");
	padding-left:8px;
	padding-top:8px;
}

实现图片+文本展示

bash 复制代码
	ui->pushButton_3->setFixedSize(280, 200);
    ui->pushButton_3->setText(u8"svip");
    // 设置布局方向为从左到右(影响图标和文字的排列)
    ui->pushButton_3->setLayoutDirection(Qt::LeftToRight);

    QString btnStyle = "QPushButton{"
                       "background-image:url(:/resources/vip_hover.png);"
                       "background-repeat:no-repeat;"    // 背景图片不重复
                       "background-origin:padding;"      // 背景从内边距开始
                       "background-position:left;"       // 背景图片左对齐
                       "padding-left:201px;"             // 左侧内边距201px
                       "border:none;"
                       "background-color:rgb(0,255,255);"
                       "color:rgb(0,0,0);"
                       "text-align:left;"							// 文字左对齐
                       "font: bold italic 30px \"Microsoft YaHei\";"
                       "}";

    ui->pushButton_3->setStyleSheet(btnStyle);
相关推荐
William_Xu30 分钟前
Vue 2 与 Vue 3 生命周期对比
前端
Hilaku44 分钟前
为什么你的大文件断点续传,一遇到弱网就崩溃?
前端·javascript·程序员
胡哈2 小时前
React Compiler:让开发者忘掉 memo 这件事
前端·react.js
xiyueyezibile2 小时前
“自迭代” Skill 的 team-pitfalls 的演进
前端·后端·ai编程
林恒smileZAZ2 小时前
`Array(100).map(() => 1)` 为什么全为空?
前端·javascript
小巧的砖头2 小时前
C#会重蹈覆辙吗?系列之2:反射及元数据的性能问题
开发语言·前端·c#
KaMeidebaby2 小时前
卡梅德生物技术快报|蛋白的叠氮基修饰:实操解析:核酸模板耦合蛋白的叠氮基修饰实现靶蛋白定点共价标记
前端·人工智能·物联网·算法·百度
濮水大叔3 小时前
在大型 Vue 项目中,如何有效管理复杂的状态?“散装版” vs “套装版”
前端·vue.js·typescript
玄星啊3 小时前
可修改:代码的生存底线
前端·ai编程
没落英雄3 小时前
3. DeepAgents 实战 - Memory Skills 与上下文工程
前端·人工智能·架构