Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Разуев Максим от Декабрь 10, 2007, 19:01



Название: [Qt-4.3.x Win] Проблема с излишней прорисовкой
Отправлено: Разуев Максим от Декабрь 10, 2007, 19:01
У меня такая проблема:
На QMainWindow есть QSlider, в него вставлены несколько виджетов. Один из них (чистый QWidget) содержит QTabWidget.
На вкладку QTabWidget вставлен мой виджет(наследник QWidget) который подцепляет к своему winId внешнюю dll (выводит 3D-сцену). Я перехватываю обработчик event моего виджета, где вызываю функцию рабочего цикла dll(через TimerEvent с частотой 20мс). Так же я вызываю в event по событию paint функцию paint dll-ки, передаю нажатия клавиш ,события мыши и resize.
Так вот при перемещении мыши в/из QTabWidget происходит мигание сцены, причем я выяснил что происходит не перерисовка виджета сцены а похоже перерисовка QTabWidget или QSlider. Никак не могу избавится от этого мигания. Я пробовал устанавливать запрет на заполнение фона для QTabWidget и QSlider но не помогает. Похоже происходи каскадная перерисовка дочерних виджетов. Но почему она происходит при перемещении мыши в/из виджета.


Название: Re: [Qt-4.3.x Win] Проблема с излишней прорисовкой
Отправлено: vaprele07 от Декабрь 11, 2007, 04:25
Попробуй поставить Qt::WA_NoBackground своему виджету.


Название: Re: [Qt-4.3.x Win] Проблема с излишней прорисовкой
Отправлено: Разуев Максим от Декабрь 11, 2007, 18:21
Установлено. Это я сделал в первую очередь.