Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: korel от Декабрь 24, 2010, 13:52



Название: Перерисовка фона виджета при сдвиге виджетов, которые на нем размещены
Отправлено: korel от Декабрь 24, 2010, 13:52
В дизайнере создал виджет в него кинул лейаут, который в свою очередь содержит кнопки. Этот виджет я устанавливаю как menuWidget для MainWindow(в коде) setMenuWidget(ui.MenuWidget);

Мне нужно, чтобы кнопки лежали на черном фоне, и для этого я сначала использовал:
Код:
ui.MenuWidget->setStyleSheet("background-color:black;");

на первый взгляд все отобразилось корректно, но при ресайзе окна кнопки, меняя свою позицию оставляли за собой небольшой прямоугольник белого цвета, фон не успевал перерисовываться!!!!

После этого я попробовал еще один вариант:

Код:
  QPalette palette;
  palette.setBrush(QPalette::Window, QBrush(QColor(0, 0, 0)));
  ui.MenuWidget->setPalette(palette);
  ui.MenuWidget->setAutoFillBackground(true);

Но, результат остался прежним. ???




Название: Re: Перерисовка фона виджета при сдвиге виджетов, которые на нем размещены
Отправлено: korel от Декабрь 24, 2010, 14:25
Решение проблеммы заключалось в том, что в сорцах я раскомментировал case WM_ERASEBKGND: и пересобрал QtGui4.dll. Поскольку я работаю под Windows фон не мог перерисовываться корректно без этого кейса.

Зачем я это делал раньше: мне нужно было "душить" обработку WM_ERASEBKGND.