QSS应用之QPushButton

1.单个按钮qss属性设置:

setstylesheet 通过QString()包一个属性,然后后面紧跟.append来追加属性设置,分别在normal状态下,hover状态下,pressed状态下,foucs选中状态下等属性的一些设置,例如:

btn->setStyleSheet( QString( "QPushButton::Normal{ background-color:rgb(255,255,255);}" )
.append("QPushButton::hover { background-color:rgb(244,244,244);}")
.append("QPushButton::pressed{ background-color:rgb(219,219,219);}")
.append("QPushButton::focus { background-color:rgb(161, 175, 201);padding:-1;outline: none}")
.append("QPushButton:focus { padding:-1;outline: none}")
);

2.整个项目控件的属性设置:

首先创建qss文件,例如:style.qss,把它加到资源文件中, 在代码里加载文件,代码如下

QFile file(":/style.qss"); 
file.open(QFile::ReadOnly); 
QString styleSheet = tr(file.readAll()); 
this->setStyleSheet(styleSheet); 
file.close();

本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓ 

qss文件内容如下:

QPushButton#myButton:normal/*鼠标正常时的效果*/
{
    color:#000000;
    background-color:rgb(40, 85, 20); /*改变背景色*/
    border-style:inset;/*改变边框风格*/
    padding-left:4px;
    padding-top:4px;
}
 
/*鼠标悬浮时的效果*/
QPushButton#myButton:hover
{
    color:#0000ff;
    background-color:rgb(40, 85, 20); /*改变背景色*/
    border-style:inset;/*改变边框风格*/
    padding-left:8px;
    padding-top:8px;
}
/*如果按下与悬浮想同时产生效果,hover必须写在pressed的后面*/
/*鼠标按下时的效果*/
QPushButton#myButton:pressed
{
    color:#00ff00;
    background-color:rgb(40, 85, 20); /*改变背景色*/
    border-style:inset;/*改变边框风格*/
    padding-left:6px;
    padding-top:6px;
}
 
/*鼠标不可用时的效果*/
QPushButton#myButton:disabled
{
    color:#000000;
    background-color:rgb(40, 85, 20); /*改变背景色*/
    border-style:inset;/*改变边框风格*/
    padding-left:6px;
    padding-top:6px;
}
 
QPushButton
{
    color:red; /*文字颜色*/
    background-color:rgb(30, 78, 11);/*背景色*/
    border-style:outset; /*边框风格*/
    border-width:2px;/*边框宽度*/
    border-color:rgb(10, 46,112); /*边框颜色*/
    border-radius:10px; /*边框倒角*/
    font:bold 14px; /*字体*/
    font-family: Segoe UI;
    min-width:100px;/*控件最小宽度*/
    min-height:20px;/*控件最小高度*/
    padding:4px;/*内边距*/
}
 
 
/*按钮样式*/
QPushButton:flat
{
    border:2px solid red;
}
 
/*当按钮打开菜单时:ui->pushButton->setMenu(menu)*/
QPushButton:open
{
    background-color:qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop:0 #abdeac, stop: 1 #fafc12);
}
 
/*子选择器:菜单*/
QPushButton::menu-indicator
{
    image:url(":/close_normal.png");
    /*image:none;去掉小三角号*/
    subcontrol-origin:padding;/*绘制subcontrol的参考矩形的位置*/
    subcontrol-position:bottom right;/*小三角的位置*/
}
 
QPushButton::menu-indicator:pressed, QPushButton::menu-indicator:open
{
    position:relative;
    top:4px;
    left:4px;
}

基本规则如下:

规则1:样式规则由选择器和声明组成。选择器指定哪些小部件受规则影响;声明指定应该在小部件上设置哪些属性。

如:QPushButton { color : green }。

其中QPushButton就是选择器,'{ color : green }'是声明部分。 color就是属性,green就是指定给该属性的值。

该语句的意思是QPushButton及其子类的前景色是绿色。

注意:Qt样式表通常不区分大小写,除了类名、对象名和Qt属性名。

规则2:可以为同一个声明指定多个选择器,使用逗号(,)分隔选择器。

QPushButton, QLineEdit, QLabel {color: red}

规则3:声明多个属性。在{}里面用 ; 分割

QPushButton { color: blue; background-color: red }

规则4:选择器的不同写法

 

规则5:控件中的子控件的样式设置。

对于一个复杂的控件,很有必要去控制这个控件的子控件。比如QComboBox的下拉按钮和QSpinBox的上下调整大小的箭头按钮。选择器可以包含子控件,这些子控件可以将规则的应用程序限制为特定的小部件子控件。如:

QPushButton::pressed { image: url(pressed.png) }。指定了按下的填充图片

规则6:伪状态。选择器可能包含伪状态,这些伪状态表示根据小部件的状态限制规则的应用。伪状态出现在选择器的末尾,中间有一个冒号(:)。如:

QPushButton:hover { color: white } 表示当鼠标悬停时颜色为白色

伪状态可以使用感叹号!操作符进行否定。如:

QPushButton:!hover { color: red } 表示当鼠标不是悬停时颜色为红色

还可以有多个伪状态一起使用:

QCheckBox:hover:checked { color: white } 表示 当鼠标悬停 并且 该复选框被选中的时候颜色为白色

QCheckBox:hover, QCheckBox:checked { color: white } 表示当鼠标悬停或着被选中的时候 颜色为白色

 

规则7:优先顺序的确定。如:

QPushButton#myButton{ color: gray }

QPushButton { color: red }

这两条规则都会应用到名为myButton的按钮上,但是他们为同一个属性设置了不同的颜色,这会有冲突,

文章转自博客园(斗战胜佛美猴王):QSS应用之QPushButton - 斗战胜佛美猴王 - 博客园

本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓ 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下QSS代码来固定QPushButton的宽度和高度: ```QPushButton { width: 80px; height: 40px; } ``` 你可以将这段代码直接添加到你的QSS文件中,然后应用到你的QPushButton上即可。 你也可以使用代码的方式设置QPushButton的宽度和高度: ```button->setFixedWidth(80); button->setFixedHeight(40); ``` ### 回答2: 在QSSQt Style Sheets)中,我们可以使用属性选择器将样式应用于特定的QPushButton,并通过设置宽度和高度属性来固定它们的宽度和高度。 首先,在QPushButton的样式表中使用属性选择器来选择目标QPushButton。例如,如果QPushButton的对象名称为"myButton",我们可以使用以下方式选择它: QPushButton#myButton {} 然后,使用属性选择器后面跟上属性名称和所需的值来设置宽度和高度。例如,我们可以设置宽度为100像素,高度为50像素,代码如下: QPushButton#myButton { width: 100px; height: 50px; } 将上述代码添加到样式表中,并将样式表应用于QPushButton对象后,按钮的宽度和高度将被固定为100像素和50像素。 请注意,除了属性选择器,还可以使用伪状态选择器(如:hover、:pressed等)来对不同状态下的QPushButton应用不同的样式。例如,我们可以为按钮的鼠标悬停状态设置不同的宽度和高度: QPushButton#myButton:hover { width: 120px; height: 60px; } 以上就是在QSS中固定QPushButton宽度和高度的方法。使用样式表,能够轻松修改和定制按钮的外观,使应用程序更具吸引力和用户友好性。 ### 回答3: 在QSS内固定QPushButton的宽度和高度,可以利用QSS中的属性和选择器来实现。 首先,我们可以使用width属性和height属性来设置QPushButton的宽度和高度。例如: QPushButton { width: 100px; height: 50px; } 上述代码将会将所有的QPushButton的宽度设为100像素,高度设为50像素。你可以根据需要来调整具体的数值。 其次,如果希望只对特定的QPushButton生效,可以使用QPushButton的objectName属性,并结合选择器进行设置。例如,如果QPushButton的objectName为"myButton",可以这样写: QPushButton#myButton { width: 100px; height: 50px; } 这样,只有objectName为"myButton"的QPushButton才会被设置为指定的宽度和高度。 最后,还可以使用QPushButton的min-width属性和min-height属性来设置最小宽度和最小高度。这样可以确保按钮不能被缩小到比一定的尺寸还要小。 QPushButton { min-width: 100px; min-height: 50px; } 通过以上的方式,就可以在QSS内固定QPushButton的宽度和高度了。不同的选择器和属性可以根据具体的需求进行灵活调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值