查看完整版本: [-- QT里用QMenu建了几个菜单,怎么在选中某个菜单的时候单面用对勾标识一下呢? --]

QTCN开发网 -> Qt基础编程 -> QT里用QMenu建了几个菜单,怎么在选中某个菜单的时候单面用对勾标识一下呢? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

darlings 2010-01-25 14:07

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

还有选了某一个菜单怎么取消另一个菜单的选中状态呢?请指点12.

yangfanxing 2010-01-25 14:15
这个。。。当然自己判断啦
QAction::setChecked(true);
the others
QAction::setChecked(false);

darlings 2010-01-25 14:53
我这里好像没有setChecked这个方法,有个setCheckable,不知道这个可以不。

yangfanxing 2010-01-25 15:00
void setChecked ( bool ) 必须有~
你没试试看。。。

darlings 2010-01-25 16:14
引用第3楼yangfanxing于2010-01-25 15:00发表的  :
void setChecked ( bool ) 必须有~
你没试试看。。。

刚又试了一下,确实没。。。只有setCheckable( )

yangfanxing 2010-01-25 16:24

什么版本啊?

darlings 2010-01-25 16:26
我用得好像是4.5版本的。

yangfanxing 2010-01-25 16:31
那还能没有???
你搜下Assistant---->setChecked,这个真有!!!

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

darlings 2010-01-25 17:03
我用setChecked(TRUE),编译不报错,但是菜单前面并没有打上对勾。

yangfanxing 2010-01-25 17:07
8楼的解得不错啊~~~多项的话也应该那样做;


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

true!!!——不过好像又无所谓了。。。或者先setCheckable(true)一下·
你判断一下这一句确实执行了没(返回值)?

darlings 2010-01-25 17:13
好像是要先加setCheckable(true),就如你说的那样。我再去试一下,完了回来报告。

darlings 2010-01-25 17:19
恩,这下对了,确实是要先setCheckable(true),完了再setChecked(true),这样才能控制打勾去勾。。。多谢指点了。。。

yangfanxing 2010-01-25 17:24
啊~那我抓上sbtree,留念下~~~
大家一起

darlings 2010-01-25 17:34
我在QT的在线文档找到|setChecked( )了,用VS2008助手的类成员展开,根本没这个东西。。。。
看来还是要多去文档里看了。。。

sbtree 2010-01-25 17:53
引用第13楼yangfanxing于2010-01-25 17:24发表的  :
啊~那我抓上sbtree,留念下~~~
大家一起

小羊,你太可爱了!

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

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

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


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

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

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

tohn 2017-04-05 11:48
darlings:我这里好像没有setChecked这个方法,有个setCheckable,不知道这个可以不。 (2010-01-25 14:53) 

二楼说的很对


查看完整版本: [-- QT里用QMenu建了几个菜单,怎么在选中某个菜单的时候单面用对勾标识一下呢? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled