• 28433阅读
  • 19回复

QT里用QMenu建了几个菜单,怎么在选中某个菜单的时候单面用对勾标识一下呢? [复制链接]

上一主题 下一主题
离线darlings
 

只看楼主 倒序阅读 楼主  发表于: 2010-01-25
还有选了某一个菜单怎么取消另一个菜单的选中状态呢?请指点12.
离线yangfanxing
只看该作者 1楼 发表于: 2010-01-25
这个。。。当然自己判断啦
QAction::setChecked(true);
the others
QAction::setChecked(false);
PHPWind好恶心。。。不想看这种界面。。。
离线darlings

只看该作者 2楼 发表于: 2010-01-25
我这里好像没有setChecked这个方法,有个setCheckable,不知道这个可以不。
离线yangfanxing
只看该作者 3楼 发表于: 2010-01-25
void setChecked ( bool ) 必须有~
你没试试看。。。
PHPWind好恶心。。。不想看这种界面。。。
离线darlings

只看该作者 4楼 发表于: 2010-01-25
引用第3楼yangfanxing于2010-01-25 15:00发表的  :
void setChecked ( bool ) 必须有~
你没试试看。。。

刚又试了一下,确实没。。。只有setCheckable( )
离线yangfanxing
只看该作者 5楼 发表于: 2010-01-25

什么版本啊?
PHPWind好恶心。。。不想看这种界面。。。
离线darlings

只看该作者 6楼 发表于: 2010-01-25
我用得好像是4.5版本的。
离线yangfanxing
只看该作者 7楼 发表于: 2010-01-25
那还能没有???
你搜下Assistant---->setChecked,这个真有!!!
[ 此帖被yangfanxing在2010-01-25 16:37重新编辑 ]
PHPWind好恶心。。。不想看这种界面。。。
离线sbtree
只看该作者 8楼 发表于: 2010-01-25
问题1:对菜单中的每一个action设置setCheckable(true)
问题2:将这些action放到一个ActionGroup里,并设置这个ActionGroup的setExclusive (true),表示这里面的项是互斥的,也就是每次只能选到一个
windows 7 + VC++2008 + Qt4.5.2
离线darlings

只看该作者 9楼 发表于: 2010-01-25
我用setChecked(TRUE),编译不报错,但是菜单前面并没有打上对勾。
离线yangfanxing
只看该作者 10楼 发表于: 2010-01-25
8楼的解得不错啊~~~多项的话也应该那样做;


我用setChecked(TRUE),编译不报错,但是菜单前面并没有打上对勾。

true!!!——不过好像又无所谓了。。。或者先setCheckable(true)一下·
你判断一下这一句确实执行了没(返回值)?
PHPWind好恶心。。。不想看这种界面。。。
离线darlings

只看该作者 11楼 发表于: 2010-01-25
好像是要先加setCheckable(true),就如你说的那样。我再去试一下,完了回来报告。
离线darlings

只看该作者 12楼 发表于: 2010-01-25
恩,这下对了,确实是要先setCheckable(true),完了再setChecked(true),这样才能控制打勾去勾。。。多谢指点了。。。
离线yangfanxing
只看该作者 13楼 发表于: 2010-01-25
啊~那我抓上sbtree,留念下~~~
大家一起
PHPWind好恶心。。。不想看这种界面。。。
离线darlings

只看该作者 14楼 发表于: 2010-01-25
我在QT的在线文档找到|setChecked( )了,用VS2008助手的类成员展开,根本没这个东西。。。。
看来还是要多去文档里看了。。。
离线sbtree
只看该作者 15楼 发表于: 2010-01-25
引用第13楼yangfanxing于2010-01-25 17:24发表的  :
啊~那我抓上sbtree,留念下~~~
大家一起

小羊,你太可爱了!
windows 7 + VC++2008 + Qt4.5.2
离线darlings

只看该作者 16楼 发表于: 2010-01-25
引用第8楼sbtree于2010-01-25 17:02发表的  :
问题1:对菜单中的每一个action设置setCheckable(true)
问题2:将这些action放到一个ActionGroup里,并设置这个ActionGroup的setExclusive (true),表示这里面的项是互斥的,也就是每次只能选到一个

我居然刚看到这个。。。晕死了,我用了一种很复杂的方法去解决你问题2.。。。。。哭。
离线hehui

只看该作者 17楼 发表于: 2010-03-03
引用第8楼sbtree于2010-01-25 17:02发表的  :
问题1:对菜单中的每一个action设置setCheckable(true)
问题2:将这些action放到一个ActionGroup里,并设置这个ActionGroup的setExclusive (true),表示这里面的项是互斥的,也就是每次只能选到一个


这个能解决楼主 的问题,不过显示的不是多选 的勾,而是单选的圈~
离线tiffany_chen

只看该作者 18楼 发表于: 2015-10-21
回 sbtree 的帖子
sbtree:问题1:对菜单中的每一个action设置setCheckable(true)
问题2:将这些action放到一个ActionGroup里,并设置这个ActionGroup的setExclusive (true),表示这里面的项是互斥的,也就是每次只能选到一个 (2010-01-25 17:02) 

太棒了,刚好在做这个!问题解决了!
离线tohn

只看该作者 19楼 发表于: 2017-04-05
回 darlings 的帖子
darlings:我这里好像没有setChecked这个方法,有个setCheckable,不知道这个可以不。 (2010-01-25 14:53) 

二楼说的很对
快速回复
限100 字节
 
上一个 下一个