crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Мигание при создании виджетов, Происходит мигание при динамическом создание виджетов
dimon1980ddd
  опции профиля:
сообщение 6.1.2010, 13:11
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 13.12.2009
Пользователь №: 1304

Спасибо сказали: 0 раз(а)




Репутация:   0  


Происходит мигание при динамическом создание виджетов. Я так понимаю что это из-за того что layout сначала сжимается когда элементы удаляются, а затем снова растягивается... Как можно "заморозить" layout чтобы не было подобного мерцания при удалении/создании элементов?
Пробовал blockSiganals и setEnabled - тоже самое:

Вот кусок кода (params - добавляемый виджет):
CODE
if (params) delete params;
params = new Params(ui->grbClient);
ui->layoutParams->blockSignals(true);
ui->layoutParams->setEnabled(false);

ui->layoutParams->addWidget(params);

ui->layoutParams->setEnabled(true);
ui->layoutParams->blockSignals(false);


Может для выше расположенных widget и layout то же что нибудь делать или вообще для всего окна?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
BRE
  опции профиля:
сообщение 6.1.2010, 13:16
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1112
Регистрация: 6.3.2009
Из: Ростов-на-Дону
Пользователь №: 591

Спасибо сказали: 264 раз(а)




Репутация:   44  


Посмотри на void QWidget::setUpdatesEnabled ( bool enable )
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dimon1980ddd
  опции профиля:
сообщение 6.1.2010, 14:17
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 13.12.2009
Пользователь №: 1304

Спасибо сказали: 0 раз(а)




Репутация:   0  


По help'y то что нужно, но у меня все равно мигает
Кому только не выставлял... Все равно мигает...
CODE
this->setUpdatesEnabled(false);
ui->grbClient->setUpdatesEnabled(false);
if (params) delete params;
params = new Params(ui->grbClient);
params->setUpdatesEnabled(false);
ui->layoutParams->addWidget(params);
params->setUpdatesEnabled(true);
ui->grbClient->setUpdatesEnabled(true);
this->setUpdatesEnabled(true);
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 6.1.2010, 15:45
Сообщение #4


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


А компилируемый пример можно увидеть?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
dimon1980ddd
  опции профиля:
сообщение 6.1.2010, 19:03
Сообщение #5


Студент
*

Группа: Участник
Сообщений: 35
Регистрация: 13.12.2009
Пользователь №: 1304

Спасибо сказали: 0 раз(а)




Репутация:   0  


ОК... Завтра набросаю....
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.8.2020, 7:26