Qt如何让按钮一开始就处于按下状态

PepperEggFriedRice 2018-03-01 10:00:34
是这样的,有两个按钮,相互为互斥状态。具体效果是这样的:



按下一个之后就保持按下的状态,另外一个按钮抬起。

目前处理方法是这样的:



现在我想在程序一开始就让一个按钮保持按下状态,于是我在构造的时候放了
setCheckable(true);
setChecked(false);之类的函数没有用。
求解,如何让程序一开始就让一个按钮处于按下状态呢?

...全文
7365 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
即将人鱼线 2019-11-05
  • 打赏
  • 举报
回复
QButtonGroup 不会用么。。。 要自行完成互斥嘛。。
jun281652136 2018-08-21
  • 打赏
  • 举报
回复
1.比较low的做法,就是搞个定时器。。。。最短时间触发,然后,发射信号。。。槽。。。即可,
2.最好在构造窗口的时候,就在构造函数中让他发射 按下的信号,然后连接槽函数即可。。。。
  • 打赏
  • 举报
回复 1
setchecked(true)是设置选中,setdown(true)是设置按下的状态,仅仅是改变钮的外观

https://blog.csdn.net/hmsiwtv/article/details/7564587
PepperEggFriedRice 2018-03-14
  • 打赏
  • 举报
回复
解决了 构造用 ui->pushButton_3->setCheckable(true); ui->pushButton_3->setChecked(true); 然后按钮触发 void PicDraw::on_pushButton_3_pressed() { if(isMousemove==1) return; ui->pushButton_3->setCheckable(true); ui->pushButton_3->setChecked(false); ui->pushButton_4->setCheckable(false); isMouse(); update(); } void PicDraw::on_pushButton_4_pressed() { if(isDrawing==1) return; ui->pushButton_4->setCheckable(true); ui->pushButton_4->setChecked(false); ui->pushButton_3->setCheckable(false); isPen(); update(); } 感谢各位大佬
萧洛 2018-03-12
  • 打赏
  • 举报
回复 1
如果你用qt disigner打开ui文件,那把需要的一组按扭checkable、autoExclusive两个属性都打勾,这样能就能互斥了;
要是把checked属性也打勾,那么这个按钮默认就是选中状态。如图:


用代码设置上面三种属性,只要调用QPushButton的
setCheckable(true);
setChecked(true);
setAutoExclusive(true);

未狂 2018-03-08
  • 打赏
  • 举报
回复
只是修改样式罢了,和按钮的逻辑没有任何关系
_LinGM 2018-03-08
  • 打赏
  • 举报
回复
1.先说你说的问题,其实不是setChecked()之类的函数没有用,而是这个函数只会去改变checked的值(你可以输出那个值来看),没有改变样式,你上面几个槽函数里的isMouse/isPen 应该是设置样式用的,你可以在setChecked()后在调用一下样式设置。 2. 你直接调用要按下按钮的槽函数就行了
Votangroom 2018-03-07
  • 打赏
  • 举报
回复
在析构函数里运行on_pushButton_3_pressed(),不是就可以了吗?
Fu_Lin_ 2018-03-07
  • 打赏
  • 举报
回复 1
你这种方法就是最繁琐的自己设置属性互斥类,如果有5个或者以上的,那你要累死,其实要真正的互斥,只需要你点击的那个按钮是true就ok了,其他的按钮会自动互斥为false的,这才是真正的互斥,,看下这个文档的说明,如果你是QPushButton,就肯定是继承这个属性了的
qq_28986565 2018-03-07
  • 打赏
  • 举报
回复
两种状态的切换其实就是两张背景图片的切换,checked是一个图片,unchecked是另一个图片。
万能菜道人 2018-03-05
  • 打赏
  • 举报
回复
直接设置颜色,另外发送触发事件。
你的OPPA 2018-03-05
  • 打赏
  • 举报
回复
你用qss去设置按钮对应的check为true时的颜色以及为false的颜色,然后初始化时直接调用setCheckable就可以了
LxxWLxx 2018-03-01
  • 打赏
  • 举报
回复
我是做安卓的,我做过类似效果的,你在程序开始时,就应该设置进入界面的对应按钮点击状态。
usecf 2018-03-01
  • 打赏
  • 举报
回复
你这只是需要修改按钮默认的qss样式 至于按钮的点击事件 你可以在窗体创建的时候触发

16,213

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧