QCheckBox
QCheckBox 继承QAbstractButton.复选按钮,提供多选多。
此示例展示一个按钮的三种状态;
//style.qss
QCheckBox{
spacing:5px;
color:white;
}
QCheckBox::indicator{
width:50px;
height:50px;
}
QCheckBox::indicator:enabled:unchecked{
image:url(:/images/1.jpeg);
}
QCheckBox::indicator:enabled:checked{
image:url(:/images/2.jpeg);
}
QCheckBox::indicator:enabled:indeterminate{
image:url(:/images/3.jpeg);
}
//mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QCheckBox>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr);
~MainWindow();
private:
QCheckBox *checkBox;
private slots:
/*声明QCheckBox的槽函数,并带参数传递,用这个参数接收信号的参数*/
void checkBoxStateChanged(int);
};
#endif // MAINWINDOW_H
//mainwindow.cpp
#include "mainwindow.h"
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
this -> setGeometry(0,0,800,480);
this -> setStyleSheet("QMainWindow {background-color:rgba(100,100,100,100%);}");
checkBox = new QCheckBox(this);
checkBox -> setGeometry(350,200,250,50);
/*初始化三态复选框状态为Checked*/
checkBox -> setCheckState(Qt::Checked);
checkBox -> setText("初始化为Checked状态");
/*开启三态模式,否则只有两种状态,即checked和unchecked*/
checkBox -> setTristate();
/*连接checkBox的信号stateChanged(int),与槽checkBoxStateChanged(int)连接*/
connect(checkBox,SIGNAL(stateChanged(int)),this,SLOT(checkBoxStateChanged(int)));
}
/*槽函数的实现*/
void MainWindow::checkBoxStateChanged(int state)
{
/*判断checkBox的state状态,设置checkBox的文本*/
switch (state){
case Qt::Checked:
/*选中状态*/
checkBox -> setText("Checked状态");
break;
case Qt::Unchecked:
checkBox -> setText("UnChecked状态");
break;
case Qt::PartiallyChecked:
/*半选中状态*/
checkBox -> setText("PartiallyChecked状态");
break;
default:
break;
}
}
MainWindow::~MainWindow() {}
//main.cpp
#include "mainwindow.h"
#include <QApplication>
#include <QFile>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QFile file(":/style.qss");
/*判断文件是否存在*/
if(file.exists()){
file.open(QFile::ReadOnly);
/*以字符串的方式保存读取的结果*/
QString styleSheet = QLatin1String(file.readAll());
/*设置全局样式*/
qApp -> setStyleSheet(styleSheet);
file.close();
}
MainWindow w;
w.show();
return a.exec();
}
运行结果: