如何遍历menuBar和mainToolBar的QAction并设置disabled?

kenchan0752 2012-11-16 04:15:50
http://blog.csdn.net/lujianfeiccie2009/article/details/6017874
我参照上面的修改了下:还是不能把QAction设置为disabled。
void MainWindow::menuBar_isAbled(const QObjectList& q, bool flag)
{
for(int i=0;i<q.length();i++)
{
if(!q.at(i)->children().empty())
{
menuBar_isAbled(q.at(i)->children(), flag);
}
else
{
QObject* qObject = q.at(i);
if(qObject->inherits("QAction"))
{
QAction* b = qobject_cast<QAction*>(qObject);
b->setDisabled(flag);
}//end if
}
}//end for
}
有没有其他的方法?谢谢
...全文
505 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenchan0752 2012-11-16
  • 打赏
  • 举报
回复
我参照了http://bbs.csdn.net/topics/350073502 这个可以实现 menuBar QObjectList list = ui->IPcamera_menuBar->children(); QObjectList::Iterator it; qDebug() << "menuBar length" << list.length(); for(it = list.begin(); it != list.end(); ++it) { QMenu* act = qobject_cast<QMenu *>(*it); if(act != NULL) { qDebug() << act->objectName(); act->setDisabled(flag); } } maintoolbar QObjectList list = ui->IPcamera_mainToolBar->children(); QObjectList::Iterator it; qDebug() << "maintoolbar length" << list.length(); for(it = list.begin(); it != list.end(); ++it) { QToolButton* act = qobject_cast<QToolButton *>(*it); if(act != NULL) { qDebug() << act->objectName(); act->setDisabled(flag); } } 但是我想menuBar某些的QAction 和maintoolbar上的某些按钮设置有效。 现在的问题是我打印不出objectName. 当我 if(act->objectName()== ui->menuBar->aAction->objectName()) { act->setDisabled(false); } 还是不能设置。

21,489

社区成员

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

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