Russian Qt Forum
Ноябрь 24, 2024, 01:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Как изменить размер окна,не используя функцию resize()  (Прочитано 5638 раз)
Germiona
Гость
« : Апрель 09, 2008, 11:57 »

Можно ли изменить размер окна (виджета),не используя функции resize() и setGeometry() ?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #1 : Апрель 09, 2008, 12:37 »

А чем неустраивают resize() и setGeometry()?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Germiona
Гость
« Ответ #2 : Апрель 09, 2008, 13:15 »

Измененить размеры окна нужно в теле функии resize() (т.е. произошло изменение размеров окна и затем размер нужно подкорректировать - получется опять resize() рекурсия и в итоге зацикливование) Как это избежать?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #3 : Апрель 09, 2008, 15:19 »

Измененить размеры окна нужно в теле функии resize()...

Вы имели ввиду в теле функции resizeEvent?
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Germiona
Гость
« Ответ #4 : Апрель 09, 2008, 15:24 »

Ой ,да конечно же resizeEvent()
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #5 : Апрель 09, 2008, 18:03 »

Вы можите показать код resizeEvent? Возможно можно будет сделать как-то по другому
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Germiona
Гость
« Ответ #6 : Апрель 10, 2008, 10:25 »

Удалось избежать зацикливания благодаря spontaneous(). Спасибо  Улыбающийся
Записан
ритт
Гость
« Ответ #7 : Апрель 10, 2008, 13:39 »

всё-равно приведите код, пожалуйста

подобные вопросы уже возникали и будут возникать, если поиск по форуму ничего не даёт
Записан
Germiona
Гость
« Ответ #8 : Апрель 10, 2008, 14:21 »

Изменение размеров окна пользователем и системные изменения размеров обрабатываются по-разному
Код:
void MainWindow::resizeEvent(QResizeEvent *e)
{
         if(e->spontaneous()) {
                                         ...
                                         resize(x,y);
                                       }
         else QWidget::resizeEvent(e);
}
Но вообще,получилось как-то не очень красиво.... В замешательстве
« Последнее редактирование: Апрель 10, 2008, 14:29 от Germiona » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.058 секунд. Запросов: 22.