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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Пропорциональное изменение размера  (Прочитано 5540 раз)
Evgkyz
Гость
« : Октябрь 31, 2012, 22:57 »

Всем привет.
Есть окно, в ней лейаут, в нем батоны и webview. Как сделать пропорциональное изменение размеров окна? Чтобы приложение всегда оставалось квадратным.
Записан
Bepec
Гость
« Ответ #1 : Октябрь 31, 2012, 23:06 »

Пропорции сохраняем 2 к 1. Всё. арифметика ^^
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #2 : Ноябрь 01, 2012, 00:04 »

в resizeEvent руками подгонять второй размер
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
twp
Гость
« Ответ #3 : Ноябрь 01, 2012, 00:25 »

Цитата: Assistant
int QWidget::heightForWidth ( int w ) const [virtual]
Записан
Evgkyz
Гость
« Ответ #4 : Ноябрь 01, 2012, 00:41 »

в resizeEvent руками подгонять второй размер

Цитата: Assistant
int QWidget::heightForWidth ( int w ) const [virtual]

Поподробнее, что куда лепить? Попробовал и то и то, ничего не получилось.
Записан
twp
Гость
« Ответ #5 : Ноябрь 01, 2012, 01:28 »

просто переопредели в своем окне этот метод с такой реализацией:
Код
C++ (Qt)
int Window::heightForWidth(int w) const
{
   return w;
}
 
Записан
Evgkyz
Гость
« Ответ #6 : Ноябрь 01, 2012, 12:56 »

просто переопредели в своем окне этот метод с такой реализацией:
Код
C++ (Qt)
int Window::heightForWidth(int w) const
{
   return w;
}
 

Сделал. А дальше что?
Записан
twp
Гость
« Ответ #7 : Ноябрь 01, 2012, 15:15 »

По идее это все.  Проверь отладчиком, вызывается ли этот метод при ресайзе.
Записан
GreatSnake
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2921



Просмотр профиля
« Ответ #8 : Ноябрь 01, 2012, 16:17 »

По идее это все.  Проверь отладчиком, вызывается ли этот метод при ресайзе.
Вы уверены, что это применимо для top-level окон?

2 Evgkyz:
Как вы представляете поведёт себя Window Manager (WM) после того как он изменил размер клиентского окна, а клиент сразу же просит WM снова изменить размер? Особенно в интерактивном режиме? Особенно под X11? Как минимум его немного заколбасит)
Для таких вещей нужно отказываться от WM вообще либо не позволять интреактивно менять размер окна средствами WM.

Решение чисто для винды см. здесь.
« Последнее редактирование: Ноябрь 01, 2012, 16:19 от GreatSnake » Записан

Qt 5.11/4.8.7 (X11/Win)
twp
Гость
« Ответ #9 : Ноябрь 01, 2012, 16:30 »

По идее это все.  Проверь отладчиком, вызывается ли этот метод при ресайзе.
Вы уверены, что это применимо для top-level окон?
Не уверен, но грех его не попробовать Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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