找回密码
 立即注册
收起左侧

QT Pushbutton Checkable 函数

2
回复
10382
查看
[复制链接]
累计签到:18 天
连续签到:1 天
来源: 2016-9-28 11:06:32 显示全部楼层 |阅读模式
5Qter豆
本帖最后由 331776051 于 2016-9-28 11:09 编辑

多个按键均启用checkable,但同时只能有一个按键按下
如:按下按键1后,按键1保持按下状态,当按下按键2后,按键2保持按下状态的同时按键1弹起;

小弟新人初学QT,用的最笨的办法,部分代码如下:
  1. void MainWindow::on_shebeiBtn_clicked()
  2. {
  3.     ui->stackedWidget->setCurrentIndex(1);
  4.     ui->stackedWidget_3->setCurrentIndex(5);

  5.     ui->canshuBtn_2->setChecked(false);
  6.     ui->dingweiBtn_2->setChecked(false);
  7.     ui->guijiBtn_2->setChecked(false);
  8.     ui->baojingBtn_2->setChecked(false);
  9.     ui->quanxianBtn_2->setChecked(false);
  10.     ui->shebeiBtn_2->setChecked(true);
  11.     ui->helpBtn_2->setChecked(false);
  12. }

  13. void MainWindow::on_helpBtn_clicked()
  14. {
  15.     ui->stackedWidget->setCurrentIndex(1);
  16.     ui->stackedWidget_3->setCurrentIndex(6);

  17.     ui->canshuBtn_2->setChecked(false);
  18.     ui->dingweiBtn_2->setChecked(false);
  19.     ui->guijiBtn_2->setChecked(false);
  20.     ui->baojingBtn_2->setChecked(false);CC
  21.     ui->quanxianBtn_2->setChecked(false);
  22.     ui->shebeiBtn_2->setChecked(false);
  23.     ui->helpBtn_2->setChecked(true);
  24. }
复制代码

构想了下,应该写一个函数,每次按键时调用函数来判断Checked的状态,自己也在尝试编写,希望各位大大们给个参考。
谢谢!

最佳答案

查看完整内容

1用QtCreator实现: 选定你说的1和2按钮-->鼠标右键点击-->选择“新建按钮组”-->将你的1和2按钮设置成checkable 2用代码实现: 假如你的按钮是*btn1,*btn2 QButtonGroup *btnGP = new QButtonGroup(this); //新建按钮组类 btnGP->addButton(btn1);//添加按钮1 btnGP->addButton(btn2);//添加按钮2 btnGP.setExclusive(true);//开启互斥
回复

使用道具 举报

累计签到:10 天
连续签到:1 天
2016-9-28 11:06:33 显示全部楼层
1用QtCreator实现:
选定你说的1和2按钮-->鼠标右键点击-->选择“新建按钮组”-->将你的1和2按钮设置成checkable
2用代码实现:
假如你的按钮是*btn1,*btn2
QButtonGroup *btnGP = new QButtonGroup(this); //新建按钮组类
btnGP->addButton(btn1);//添加按钮1
btnGP->addButton(btn2);//添加按钮2
btnGP.setExclusive(true);//开启互斥
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-9-30 11:56:52 显示全部楼层
木的码农 发表于 2016-9-30 11:09
1用QtCreator实现:
选定你说的1和2按钮-->鼠标右键点击-->选择“新建按钮组”-->将你的1和2按钮设置成chec ...

谢谢,方法学习啦,最后一行改成btnGP->setExclusive(true);
再次感谢!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了