Для поиска нужного пункта меню по имени использую такой код:КодC++ (Qt)QAction * findAction(QObjectList lst, QString menuname){ for( QObjectList::const_iterator it = lst.begin(); it != lst.end(); ++it ) { if( QAction *act = qobject_cast(*it) ) { QString name = act->objectName(); if( menuname.compare( name, Qt::CaseInsensitive ) == 0 ) return act; } else if( QMenu *mnu = qobject_cast(*it) ) { QAction * act = findAction(mnu->children(), menuname); if( act != 0 ) return act; } } return 0;}QAction * act = findAction(this->menuBar()->children()); И это не работает. Более того, в отладчике видно, что для всех QAction objectName() возвращает пустую строку. Как это победить? Или может можно это сделать как-то проще?
|