Я хочу, чтобы размер окна QT изменялся пропорционально - PullRequest
0 голосов
/ 19 сентября 2010

Так же, как сказал заголовок, когда я изменяю размер окна, если я увеличиваю его, я хочу, чтобы высота окна изменялась пропорционально, чтобы окно имело такой же коэффициент.Я просто делаю логику в paintEvent, но он не работает нормально, могут ли некоторые ребята иметь какое-либо решение?

Не думаю, что изменение размера в resizeEvent - отличный способ, лучший результат - мерцание окна, но я хочу беглый путь

1 Ответ

1 голос
/ 19 сентября 2010

Не делайте этого в paintEvent, а вместо этого void QWidget::resizeEvent ( QResizeEvent * event ).Затем вы можете сравнить event->size() и event->oldsize(), чтобы увидеть, какое измерение было изменено, а затем изменить размер, чтобы сопоставить другое измерение с измененным.

EDIT: обратите внимание, что при изменении размера окна внутри функции resizeEvent вы создадите еще одно событие изменения размера.Поэтому убедитесь, что вы изменяете размер только в том случае, если произошли изменения, приведшие окно к неправильному соотношению сторон, в противном случае вы создадите бесконечную рекурсию функции и переполнение стека.

...