Доброго времени суток, читатели, зрители моего канала programmer's notes. Не забывайте подписываться и писать свои комментарии к моим статьям и видео.
Масштабирование элементов окна в pyqt5
Не сложный но актуальный вопрос программирования. В окне бывает несколько элементов управления: кнопки, поля ввода, списки, радиокнопки и т.д. Если мы будем менять размеры окна, а это по умолчанию допускается, то расположение элементов будет смещено. Не смертельная проблема, но иногда это раздражает. Одним из решений является фиксирование размеров окна. Но это тоже половинчатое решение. На разных экранах окно может выглядеть по-разному, изменение размеров окна было бы выходом. Но тогда нужно что-то делать с элементами окна.
В программе ниже показан простой пример масштабирования (см. Рисунок 1 и Рисунок 2). При изменении размеров окна меняется расположение и размеры (длина) элементов. При этом фиксируется минимальные размеры окна, что, разумеется логично.
Пояснение к программе
- Для того, чтобы правильно реагировать на изменение размеров окна, нужно обрабатывать событие QWidget.resizeEvent().
- В методе res() определяются размеры и местоположение элементов окна на основе его размеров. Размеры и положение привязано к размерам окна. Высоту элементов я не стал менять, что логично, но можно было сделать и это, конечно. Но тогда нужно было менять высоту шрифта. Ширину шрифта, мы, кстати, тоже не меняем. Так что есть над чем поработать и вам.
- Обращаю внимание также на методы QWidget.setMinimumWidth() и QWidget.setMinimumHeight() с помощью которых фиксируется минимальный размер окна.
Ну, пока всё!
Пишите свои предложения и замечания, и занимайтесь программированием, а также проектированием баз данных, хотя бы для поддержания уровня интеллекта.