2015-10-27 5 views
2

У меня есть QDockWidget:QDockWidget :: цвет фона не применяется, когда стыковка

enter image description here

Я хотел бы предупредить пользователя о некоторых событиях, установив цвет фона в строке заголовка.

я достиг этого, установив таблицу стилей для моего DockWidget:

void DockWidget::setCriticalAlert() 
{ 
    setStyleSheet("QDockWidget { background-color:red; }"); 
} 

Результат таков:

enter image description here

Проблема, что background-color не будет применена, когда QDockWidget присоединен:

enter image description here

Как я могу получить цвет фона для применения, когда QDockWidget состыкован?

ответ

1

Это ошибка в Qt.

Issue 10537

Цитируя связанного вопроса:

Проблема заключается в том, что в QDockWidget :: paintEvent, есть isFloating() состояние перед нанесением PE_FrameDockWidget. Мы не можем jsut удалить это условие, так как оно сломает другой стиль (что не хочет рисовать рамку, когда dockwidget пристыкован) Мы не можем использовать PE_Widget, чтобы нарисовать кадр, как тогда он перейдет через Название dockwidget's Решение возможно, ввести новый примитивный элемент PE_FrameDockWidgetDocked. Или немного SH_DockWidget_DrawDockedFrame stylehint, чтобы нарисовать кадр в каждом случае .

Смежные вопросы