Loading...
打赏
Qt之QCheckBox
big_anana 发布于 2017/11/16 浏览 802 点赞 0 收藏 0

构造一个复选框QCheckBox,然后使用setTristate()开启三态模式。

QCheckBox *pCheckBox = new QCheckBox(this);
m_pLabel = new QLabel(this);

m_pLabel->setText("Click CheckBox...");
pCheckBox->setText(QString::fromLocal8Bit("三态复选框"));

// 开启三态模式
pCheckBox->setTristate();

// 连接信号槽
connect(pCheckBox, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));

槽函数,判断当前复选框状态,其中包括:选中(Qt::Checked)、半选(Qt::PartiallyChecked)、未选中(Qt::Unchecked)。

void MainWindow::onStateChanged(int state)
{
if (state == Qt::Checked) // "选中"
{
m_pLabel->setText("Checked");
}
else if(state == Qt::PartiallyChecked) // "半选"
{
m_pLabel->setText("PartiallyChecked");
}
else // 未选中 - Qt::Unchecked
{
m_pLabel->setText("Unchecked");
}
}

QSS复选框样式。
QCheckBox{
spacing: 5px;
color: white;
}
QCheckBox::indicator {
width: 17px;
height: 17px;
}
QCheckBox::indicator:enabled:unchecked {
image: url(:/Images/checkBox);
}
QCheckBox::indicator:enabled:unchecked:hover {
image: url(:/Images/checkBoxHover);
}
QCheckBox::indicator:enabled:unchecked:pressed {
image: url(:/Images/checkBoxPressed);
}
QCheckBox::indicator:enabled:checked {
image: url(:/Images/checkBoxChecked);
}
QCheckBox::indicator:enabled:checked:hover {
image: url(:/Images/checkBoxCheckedHover);
}
QCheckBox::indicator:enabled:checked:pressed {
image: url(:/Images/checkBoxCheckedPressed);
}
QCheckBox::indicator:enabled:indeterminate {
image: url(:/Images/checkBoxIndeterminate);
}
QCheckBox::indicator:enabled:indeterminate:hover {
image: url(:/Images/checkBoxIndeterminateHover);
}
QCheckBox::indicator:enabled:indeterminate:pressed {
image: url(:/Images/checkBoxIndeterminatePressed);
}

连接stateChanged()信号和槽函数,当用户点击复选框时,状态发生改变就会调用槽函数。

根据以上样式可写为:
AirFrame QCheckBox#switch_Button::indicator:unchecked
{
image: url(://resource/area/checkbox/close.png);
}

AirFrame QCheckBox#switch_Button::indicator:checked
{
image: url(://resource/area/checkbox/open.png);
}

以上是更改使用的。

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

编辑 删除

精彩评论

内容存在敏感词
打赏作者
big_anana
您的支持将鼓励我继续创作!
金额:
¥1 ¥5 ¥10 ¥50 ¥100
支付方式:
微信支付
支付宝支付
微信支付
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区