-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