添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

Qt | 控件之QCheckBox

QCheckBox提供了一个带文本标签的复选框,属于选项按钮,可以表现选中或未选中的状态,如图所示(图中表现了三个状态的QCheckBox):


头文件 :#include<QCheckBox>


创建方式:静态方式和动态方式。
当我们选择静态方式(直接从工具箱中拖拉复选框控件的方式)使用QCheckBox时,不需要我们手动添加头文件,Qt Creator会自动添加;当我们选择动态方式(通过new创建复选框的方式)时,需要我们通过代码来手动添加头文件。
动态方式创建:QCheckBox checkBox = new QCheckBox(QStringLiteral("复选框1"), this);//参数一声明QCheckBox的文本;参数二声明QCheckBox的父控件。


设置图标:

  • setIcon();//设置复选框图标

图标文件既可以是png文件,也可以是ico文件。图标是指在勾选框右边除了显示文字,还可以显示一个图片,这个图片就是图标,一般不用。


设置样式:

  • setStyleSheet();//设置复选框样式、文字样式
"QCheckBox::indicator:enabled:unchecked{image: url(:/image/weigx.png);}"//未勾选图片 
"QCheckBox::indicator:enabled:checked{image: url(:/image/yigx.png);}"//已勾选图片 
"QCheckBox::indicator:disabled{image: url(:/Resources/image/jinyong.png);}"//禁用图片 
"QCheckBox{color:#666666;font-family:Microsoft YaHei UI;font-size:16px;" 
           "qproperty-alignment: 'AlignVCenter | AlignLeft';}";//字体颜色、字体、大小、对齐方式 


设置文本:

  • setText(); //设置复选框的文本。
  • text(); //返回复选框的显示文本。

设置复选框的状态:

  • setChecked(); //True表示选中;False表示取消选中。
  • isChecked(); //返回复选框是否被选中。
  • setTriState(); //设置复选框为一个三态复选框。
  • setCheckState(); //设置三态复选框的状态。

三态 就是除了打勾和不打勾两个分别表示选中和没选中状态外,还有一个半选中状态,此时复选框的表现为方框内填充了颜色,上图中的默认状态就是半选中状态。


通常,几个复选框在一起都是可以多选的,这种情况称为 非独占方式 ;复选框还可以实现单选的效果,当选中其中一个后,其他几个自动不选中,这种情况称为 独占方式 ,此时的效果和单选按钮的效果类似。


实现独占效果,可以通过QButtonGroup类来实现。在QButtonGroup中创建多个QCheckBox,然后设置QButtonGroup->setExclusive(false);实现独占效果,只能单选。QButtonGroup->setExclusive(true);实现非独占效果,可以多选。


信号:stateChanged(int state);
参数为int类型,其中 Qt::checked 表示“选中”; Qt::Unchecked 表示“未选中”; Qt::PartiallyChecked 表示“半选中”。


可以连接自定义的槽函数:

connect(ui.checkBox, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));
我们使用QCheckBox的流程就是:

1.创建一个或多个复选框;

2.设置复选框样式;

3.连接信号槽函数;

逻辑处理都会放在槽函数中实现。

发布于 2022-02-28 09:56

文章被以下专栏收录