![]()
1、QPushButton
普通按钮,可以提供文字,图标都在按钮上。可以设置一定的界面风格。
1
2 ui->pushButton->setCursor(QCursor(Qt::PointingHandCursor));
//设置光标,手型图标。鼠标在控件上显示。checkable 属性 :
只有setCheckable(true),这个button才能发射 toggle(bool) 信号。
而toggle(bool)代表了button 按下,弹起的状态像0,1的切换开关。
setCheckable(true)为属性,表示可以选中 setChecked(true)为属性的值,表示已经选中
2、QToolButton
QToolButton类提供了一个快速访问命令或选项的按钮,通常在QToolBar中使用。工具按钮是一种特殊的按钮,提供对特定命令或选项的快速访问。与普通的命令按钮不同,工具按钮通常不显示文字,而是显示一个图标。
此按钮功能比QPushButton多。
3、QCheckBox
复选框
复选框被选中或者清除,都会发射一个stateChanged()信号。
使用isChecked()来查看特定按钮是否被选中。
使用setTristate()函数开启三种状态模式。包括:选中(Qt::Checked)、半选(Qt::PartiallyChecked)、未选中(Qt::Unchecked)。
1
2
3
4 // 开启三态模式
pCheckBox->setTristate();
// 连接信号槽
connect(pCheckBox, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));槽函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 void MainWindow::onStateChanged(int state)
{
if (state == Qt::Checked) // "选中"
{
qDebug()<<"Checked";
}
else if(state == Qt::PartiallyChecked) // "半选"
{
qDebug()<<"PartiallyChecked";
}
else // 未选中 - Qt::Unchecked
{
qDebug()<<"Unchecked";
}
}
4、QRadioButton
带有文本标签的单选按钮。
一个可以切换选中(checked)或未选中(unchecked)状态的选项按钮。单选框通常呈现给用户一个“多选一”的选择。也就是说,在一组单选框中,一次只能选中一个单选框。
单选框默认开启自动互斥(autoExclusive)。如果启用了自动互斥,属于同一个父部件的单选框的行为就和属于一个互斥按钮组的一样。如果你需要为属于同一父部件的单选框设置多个互斥按钮组,把它们加入QButtonGroup中。
每当一个按钮切换选中或未选中状态时,会发出的toggled()信号。
使用isChecked()来查看特定按钮是否被选中。
1
2
3
4
5
6 QRadioButton::indicator:unchecked {
image: url(:/Images/switchOff);
}
QRadioButton::indicator:checked {
image: url(:/Images/switchOn);
}
5、QButtonGroup
提供 一个抽象的按钮容器,可以将多个按钮划分为一组,不具备可视化的效果,一般放的都是可以被检查的按钮。
QButtonGroup可以在整数和按钮之间进行映射。您可以使用setId()为按钮分配一个整数id,并使用id()检索它。当前选中的按钮的id可用checkedId(),并且有一个重载的信号buttonClicked()发出按钮的id。id -1是QButtonGroup保留的,表示“没有这样的按钮”。映射机制的目的是简化用户界面中枚举值的表示。