Что я хочу сделать с этим фрагментом кода, задается фокус на QMenu
Элемент программно. Но ни QMenu::setActiveAction()
, ни QMenu::popup()
работ. Как я могу это сделать?Как настроить фокус на QMenu Элемент программно
#include <QApplication>
#include <QMainWindow>
#include <QMenuBar>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QMainWindow *window = new QMainWindow();
window->setWindowTitle(QString::fromUtf8("Test:QMenu"));
window->resize(336, 227);
QAction *newAct = new QAction("&New",window);
QAction *openAct = new QAction("&Open",window);
QAction *saveAct = new QAction("&Save",window);
QMenu *fileMenu;
fileMenu = window->menuBar()->addMenu("&File");
fileMenu->addAction(newAct);
fileMenu->addAction(openAct);
fileMenu->addAction(saveAct);
window->show();
fileMenu->popup(QPoint(10,10));
return app.exec();
}
На самом деле одним из требований к программному обеспечению является то, что в качестве устройства ввода пользователя используется только клавиатура. В этом отношении ваше первое предложение не помогает. И ваше второе предложение не ясен для меня. Это будет полезно, если вы объясните этот момент – Crain008
Попробуйте нажать правую кнопку мыши, чтобы открыть всплывающее меню в вашем браузере. После появления меню попытайтесь нажимать узкие клавиши вверх/вниз на клавиатуре. Вы увидите, что выбранный пункт меню прыгает, поэтому вы можете генерировать события печати грамматически, чтобы выбрать нужный элемент. –
Это работает и на Mac. –