首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

怎么遍历Qtoolbar中的每个QAction

2012-12-18 
如何遍历Qtoolbar中的每个QActionQObjectList list toolBar-children()QObjectList::Iterator itfor

如何遍历Qtoolbar中的每个QAction


QObjectList list = toolBar->children();
QObjectList::Iterator it;
for (it = list.begin(); it != list.end(); ++it)
{
QAction *act =qobject_cast<QAction *>(*it) ;
act->setChecked(false);
}


上代码中QAction *act 为NULL?而且发面List中有6个元素,但我明明只加了3个QAction

[最优解释]
不好意思, 上面回答有些漏洞, 应该是在要对QToolBar上的控件进行样式修改或其它操作时, 才通过children()来遍历;
对于只想获取QAction的话, 直接调用actions返回即可~``
[其他解释]
QToolBar继承自QWidet,QWidget有actions()方法
[其他解释]
注意, 一般要对QToolBar子控件操作, 应该遍历QWidget(通常情况为QToolButton), 而不是QAction~``
QObjectList list = ui.toolBar->children();
QObjectList::Iterator it;
for (it = list.begin(); it != list.end(); ++it)
{
QToolButton* act = qobject_cast<QToolButton *>(*it);
if(act != NULL)
{
qDebug() << act->objectName();
act->setCheckable(true); // 这只是举个例子, 以便看到效果 :)
act->setChecked(true);
}
}

[其他解释]
QToolButton不能直接转换成QAction,需要使用方法defaultAction()
[其他解释]
引用:
QToolButton不能直接转换成QAction,需要使用方法defaultAction()

嗯, 不过作为要通过QToolBar获取得用QToolButton而已 :) 获取到QToolButton后对QAction的操作只是状态的变化了~``
[其他解释]
引用:
不好意思, 上面回答有些漏洞, 应该是在要对QToolBar上的控件进行样式修改或其它操作时, 才通过children()来遍历;
对于只想获取QAction的话, 直接调用actions返回即可~``

大哥,toolbar哪有actions方法!!!
[其他解释]
引用:
注意, 一般要对QToolBar子控件操作, 应该遍历QWidget(通常情况为QToolButton), 而不是QAction~``


C/C++ code?



123456789101112

QObjectList list = ui.toolBar->children(); QObjectList::Iterator it; for (it = list.begin……




 qDebug() << act->objectName();  这个读出来的值怎么是空的??

热点排行