Код: Выделить всё
QMenuБольшинство QAction -Items являются производными QWidgetAction с повторным внедорожным QWidgetAction :: CreateWidget Методы.
Обычно, оба quction s и qmenu не являются выделенными на mouse hover. допустить проблемы до здесь:
Но сразу же переопределить qwidgefactaction :: Qwidget < /code> < /p>
Код: Выделить всё
QWidget* MyWidgetAction::createWidget(QWidget* parent) { return new MyWidget(parent); }
< /code>
Выделение больше не работает. Итак, я сам реализовал: < /p>
void MyWidget::set_highlighted(bool h)
{
setBackgroundRole(h ? QPalette::Highlight : QPalette::Window);
setAutoFillBackground(h);
}
void MyWidget::enterEvent(QEvent*) override { set_highlighted(true); }
void MyWidget::leaveEvent(QEvent*) override { set_highlighted(false); }
< /code>
Тем не менее, он не ведет себя, как и ожидалось: < /p>
< /p>
i уже фигурировано. Не призван до тех пор, пока все подменю не будут закрыты, что происходит только с некоторой задержкой после того, как мышь покидает подменю или его действие (кстати, как я могу изменить задержку?). То же самое с событиями мыши. Пользователь не должен замечать, что пользовательский виджет и стандартный Quction Что делает qwidgetaction :: createwidget и как я могу его воспроизвести? Я уже посмотрел на источник QT, но он довольно запутан.>
Подробнее здесь: https://stackoverflow.com/questions/550 ... n-on-hover
Мобильная версия