-1
我需要通過按Alt鍵(如在FireFox中)來隱藏/顯示主菜單功能。我知道如何隱藏並顯示它,但在顯示後我無法突出顯示菜單。我試過menuBar()->actions()[0].hover()
,activateWindow()
,setActiveAction()
,activate(QAction::Hover)
,但沒有什麼幫助。我該怎麼做?也許我應該使用WinApi函數而不是Qt?Qt如何突出顯示菜單?
bool MainWindow::event(QEvent *event){
if (event->type() == QEvent::KeyPress)
{
QKeyEvent *ke = static_cast<QKeyEvent*>(event);
if (ke->key() == Qt::Key_Alt)
{
keyReleaseEvent(ke);
return true;
}
}
return QMainWindow::event(event);
}
手柄Alt鍵
void MainWindow::keyReleaseEvent (QKeyEvent* event)
{
if (event->key() == Qt::Key_Alt){
if (menuBar()->isHidden()){
menuBar()->show();
menuBar()->setFocus(Qt::MenuBarFocusEvent); //here I trying to highlight the menu
}
else{
menuBar()->hide();
{
}
}
我已經試過這個。它有重點,但沒有突出顯示 – Dimanesson
我編輯過它,忘記了focuspolicy,你有沒有設置它? – Megasa3
試過'QTimer :: singleShot(0,menuBar(),SLOT(setFocus()));',它沒有幫助 – Dimanesson