Qt5.9中用QPushbutton按钮做出QCheckBox效果(函数QPushbutton::setCheckable())(当前状态、鼠标滑过状态、选中后状态)

本文主要总结用QPushbutton类做出QCheckBox的效果,同时用QSS实现按钮默认图标和颜色字体,鼠标滑过状态,选中后状态。

1.1下面,将关键代码贴出如下:

QPushButton *allSelectBtn = new QPushButton("全选");
    allSelectBtn->setCheckable(true);
    allSelectBtn->setFixedSize(QSize(100,30));
    allSelectBtn->setStyleSheet("QPushButton{background-image: url(:res/1.png);background-repeat: no-repeat;}"
                                "QPushButton:hover{background-image: url(:res/1.png);background-repeat: no-repeat;}"
                                "QPushButton:checked{background-image: url(:res/1.png);background-repeat: no-repeat;}");
    connect(allSelectBtn,SIGNAL(clicked(bool)),this,SLOT(On_allSelectBtnSlot()));

 

void QWidget::On_allSelectBtnSlot()
{
    if(allSelectBtn->isChecked())
        qDebug()<<"allSelectBtn is checked!";
    else
        qDebug()<<"allSelectBtn is not checked!";
}

 

1.2实现效果图如下:

默认状态

鼠标滑过状态

          Qt5.9中用QPushbutton按钮做出QCheckBox效果(函数QPushbutton::setCheckable())(当前状态、鼠标滑过状态、选中后状态)_第1张图片

选中后状态

 

           Qt5.9中用QPushbutton按钮做出QCheckBox效果(函数QPushbutton::setCheckable())(当前状态、鼠标滑过状态、选中后状态)_第2张图片

取消选中后状态

 

1.3其中将QPushbutton变为QCheckBox功能,只需要调用一个函数,QPushbutton::setCheckable(bool)为true就可以了,接下来就可以实现QCheckBox勾选和不勾选效果。

 

 

参考内容:

http://doc.qt.io/archives/qt-4.8/qabstractbutton.html

你可能感兴趣的:(嵌入式积累,Qt基础知识,Qt工程应用)