qt -- QPushButton、QToolButton、QCheckBox、QRadioButton、QButtonGroup

目录

1、QPushButton

2、QToolButton

3、QCheckBox

4、QRadioButton

5、QButtonGroup


 

1、QPushButton

普通按钮,可以提供文字,图标都在按钮上。可以设置一定的界面风格。

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)。

// 开启三态模式
pCheckBox->setTristate();  
// 连接信号槽
connect(pCheckBox, SIGNAL(stateChanged(int)), this, SLOT(onStateChanged(int)));

槽函数:

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()来查看特定按钮是否被选中。

QRadioButton::indicator:unchecked {
    image: url(:/Images/switchOff);
}
QRadioButton::indicator:checked {
    image: url(:/Images/switchOn);
}

//默认选择
radio->setChecked(true);

5、QButtonGroup

提供 一个抽象的按钮容器,可以将多个按钮划分为一组,不具备可视化的效果,一般放的都是可以被检查的按钮。

QButtonGroup可以在整数和按钮之间进行映射。您可以使用setId()为按钮分配一个整数id,并使用id()检索它。当前选中的按钮的id可用checkedId(),并且有一个重载的信号buttonClicked()发出按钮的id。id -1是QButtonGroup保留的,表示“没有这样的按钮”。映射机制的目的是简化用户界面中枚举值的表示。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值