Выделение пользовательского QwidgetAction на HoverC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Выделение пользовательского QwidgetAction на Hover

Сообщение Anonymous »

Мое приложение имеет Qmenubar с несколькими Qmenu s, каждый из которых имеет ряд Quction s и суб- s.
Большинство 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»