【QT入门】 Qt自定义控件与样式设计之QCheckBox qss实现按钮开关

往期回顾

【QT入门】Qt自定义控件与样式设计之QPushButton常用qss-CSDN博客

【QT入门】 Qt自定义控件与样式设计之QPushButton实现鼠标悬浮按钮弹出对话框-CSDN博客

【QT入门】 Qt自定义控件与样式设计之QComboBox样式表介绍-CSDN博客

 【QT入门】 Qt自定义控件与样式设计之QCheckBox、qss实现按钮开关

一、最终效果

实现点击按钮切换开启和关闭两种状态,并对两种状态进行不同的样式设计,其实很简单,用了两张图片去切换。

二、checkbox控件 

在Qt框架中,checkbox控件是通过QCheckBox类来实现的。QCheckBox类提供了一种方便的方式来创建和管理复选框控件,用于表示两种状态之间的选择,类似于HTML中的checkbox元素。

1、常见特点和用法

1.1创建QCheckBox控件

可以使用以下代码在Qt中创建一个QCheckBox控件:

QCheckBox *checkBox = new QCheckBox("选择项", parent);
1.2设置文本和状态

可以使用setText()方法设置复选框显示的文本,setChecked()方法设置复选框的选中状态。

1.3获取复选框状态

可以使用isChecked()方法来获取复选框当前的选中状态。

1.4信号和槽机制

QCheckBox类提供了stateChanged(int state)信号,可以通过连接这个信号和槽函数来响应复选框状态的改变。

1.5样式定制

可以通过设置样式表来自定义复选框的外观,比如改变颜色、大小、边框等。

1.6布局管理

可以将QCheckBox控件放置在布局管理器中,以便更好地控制其位置和大小。

2、实现按钮开关示例

上面说了,QCheckBox类提供了一种方便的方式来创建和管理复选框控件,用于表示两种状态之间的选择,但是,其实checkbox是一个三态按钮,还有一个状态,不仅仅有选中和未选中两种状态,还有一种部分选中状态

ConstantValueDescription
Qt::Unchecked                0        The item is unchecked.
Qt::PartiallyChecked         1        The item is partially checked. Items in hierarchical models may be partially checked if some, but not all, of their children are checked.
Qt::Checked                  2        The item is checked.

2.1状态解释

Qt::Unchecked (数值为0):表示复选框未被选中,即未被勾选的状态。
Qt::PartiallyChecked (数值为1):表示复选框处于部分选中状态。在具有层次结构的模型中,如果某个项目的部分子项目被选中,但不是所有子项目都被选中,那么该项目就会处于部分选中状态。
Qt::Checked (数值为2):表示复选框已被选中,即被勾选的状态。

2.2代码示例

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    ui->checkBox->setFixedSize(128, 64);

    QString qss = "QCheckBox::indicator:unchecked{ \
                   image:url(:/resources/status_close.png); \
                   } \
                   QCheckBox::indicator:checked { \
                   image: url(:/resources/status_open.png); \
                   }";

    ui->checkBox->setStyleSheet(qss);
    ui->checkBox->setChecked(true);
    //ui->checkBox->setTristate(true);

    connect(ui->checkBox, &QCheckBox::stateChanged , [=](int state){
        qDebug() << state;
    });
}

以上就是QCheckBox qss实现按钮开关基本示例,更多是对QCheckBox控件的掌握

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt QCheckBox QSS样式是指使用Qt样式表(QSS)来设置QCheckBox控件的外观和样式QSS是一种基于CSS的样式语言,可以用于设置Qt应用程序中的各种控件的样式和外观。通过使用QSS样式表,可以轻松地自定义QCheckBox控件的外观,包括背景颜色、字体、边框等。 ### 回答2: QCheckBoxQt中的一个复选框控件,可以用于用户选择多个选项。QSS样式Qt样式语言,可以用于定义控件的外观和行为。QSS样式与QCheckBox控件的结合使用,可以给QCheckBox控件设置不同的外观和行为。 在QSS样式中,可以使用属性选择器来为QCheckBox控件设置样式。例如,可以使用以下代码来设置选中和未选中状态下的复选框的背景色: QCheckBox:checked { background-color: green; } QCheckBox:unchecked { background-color: red; } 此外,还可以使用伪类选择器来设置鼠标悬停和聚焦状态下的样式,例如: QCheckBox:hover { border: 1px solid yellow; } QCheckBox:focus { border: 1px solid blue; } 可以将这些QSS样式应用到单个QCheckBox或者一组QCheckBox控件中。例如,以下代码将样式应用到了两个QCheckBox控件: QCheckBox { font-size: 14px; } QCheckBox#checkBox1 { color: red; } QCheckBox#checkBox2 { color: blue; } 其中,#checkBox1和#checkBox2是QCheckBox控件的对象名称,可以在代码中通过QCheckBox::setObjectName()方法进行设置。 总之,QSS样式提供了丰富的方式来定义QCheckBox控件的外观和行为,可以根据实际需求自由定制。 ### 回答3: Qt QCheckbox QSS样式用于美化和自定义复选框控件外观,提高了用户界面的可用性和用户的体验。 QSS,即Qt Style Sheet,是一种类似于CSS的样式表,用于定义Qt应用程序中控件的外观和行为。Qt QCheckbox QSS样式是控制复选框控件外观和行为的样式,可以实现控件状态和控件选择等方面的定制化。 如下是一个基本的QCheckbox QSS样式代码: QCheckBox { spacing: 5px; /*间距*/ } QCheckBox::indicator { width: 20px; /*指示器宽度*/ height: 20px; /*指示器高度*/ } QCheckBox::indicator:unchecked { background-color: #eee; /*未选中的背景色*/ } QCheckBox::indicator:checked { background-color: #2E8B57; /*选中的背景色*/ } QCheckBox::indicator:hover { background-color: #bfbfbf; /*鼠标悬停时的背景色*/ } 这些代码将复选框的间距设置为5像素,指示器宽度和高度为20像素。未选中的复选框背景色为浅灰色,选中的复选框背景色为深绿色。当鼠标悬停在复选框上时,背景色变为中灰色。 除此之外,还可以用QCheckbox QSS样式定制标签和特殊状态的背景颜色、前景颜色、边框样式等。我们可以利用这些属性来定义自己的复选框主题,以适应应用程序的主题。QSS样式可以轻松应用到Qt设计的UI控件上,无需改变用Qt设计的UI控件的标准代码,使得美化界面更加方便快捷。 总之,Qt QCheckbox QSS样式通过灵活的样式语言,可以实现复选框控件的高度定制化,提高了用户界面的可用性和用户的体验。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值