Шаговый ресайз |
Здравствуйте, гость ( Вход | Регистрация )
Шаговый ресайз |
RazrFalcon |
11.7.2011, 16:23
Сообщение
#1
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Нужно что бы окон ресайзилось с определенным шагом, к примеру 40pix.
Пример: ширина 200, 240, 280... Других значений не должно быть. Пробовал так: int step=40; никакого эффекта.Как реализовать такой ресайз? |
|
|
Litkevich Yuriy |
11.7.2011, 17:07
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Для твоей задачи:
если твоё условие не выполняется, ты должен вернуть accept (принято), чтобы считать что событие обработано. Если ты вернёшь ignore (игнорировать) оно будет обработано кем-то другим, вышестоящим (не знаю кем для окна). |
|
|
RazrFalcon |
11.7.2011, 17:19
Сообщение
#3
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Ясно. Только что дальше делать?
К примеру: у меня ширина окна 200пикс, и пока она не станет 240, окно должно быть шириной 200, а потом резко стать 240. |
|
|
Litkevich Yuriy |
11.7.2011, 18:04
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
как входим в обработчик события, автоматом ставится флажёк accepted.
Проверяем условие, если истино, то изменяем размер окна, для этого проще вызвать этот же обработчик базового класса (QMainWindow::resizeEvent(e)). если ложно просто выходим |
|
|
RazrFalcon |
11.7.2011, 21:07
Сообщение
#5
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Не понял =/
Так? |
|
|
Алексей1153 |
11.7.2011, 21:23
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
не установлен у меня Qt сейчас здесь, попробовать не могу. Но можно сделать вот так:
в QMainWindow::resizeEvent(e) достаём размер, который сейчас указал пользователь: e->size().width() корректируем: int newWid=int(( e->size().width() + step/2 ) /step)*step; устанавливаем новый размер в newWid |
|
|
Litkevich Yuriy |
11.7.2011, 21:29
Сообщение
#7
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
RazrFalcon |
11.7.2011, 22:07
Сообщение
#8
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Никакого эффекта... =(
Сообщение отредактировал RazrFalcon - 11.7.2011, 22:07 |
|
|
Litkevich Yuriy |
11.7.2011, 23:17
Сообщение
#9
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
сделай простейший компилируемый пример и выложи сюда.
|
|
|
RazrFalcon |
11.7.2011, 23:26
Сообщение
#10
|
Zombie Mod Группа: Участник Сообщений: 1654 Регистрация: 24.5.2010 Из: Харьков Пользователь №: 1752 Спасибо сказали: 64 раз(а) Репутация: 212 |
Вот.
Сообщение отредактировал RazrFalcon - 11.7.2011, 23:26
Прикрепленные файлы
|
|
|
Текстовая версия | Сейчас: 2.1.2025, 17:45 |