1
我想要處理的這段代碼是以編程方式將焦點設置在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。 –