масштаб и разметка на windows 10 и pyqt текст выходит за размеры виджетов
PyQt: автоизменение размера вложенного виджета
> Или я неправильно танцую, или нужен вообще другой танец.
Завязывай с танцами и начинай думать.
И, кстати, кнопка и поле ввода по вертикали всё равно не тянутся, зачем это тебе?
И, кстати, кнопка и поле ввода по вертикали всё равно не тянутся, зачем это тебе?
Если попросить, то тянется
>при изменении размера QMainWindow размер QVBoxLayout остается прежним
Со временем он тоже изменится, просто это питон тормозит.
А потом такие писатели идут в MS и ваяют им интефейсы :3
А QtDesigner на что?
Всё правильно сказал.
Ваяют дизайнеры, я только пишу что закажут.
QtDesigner не требует особого понимания, а я хочу разобраться. А интерфейсы мелкомягким я не пишу, потому как не пользуюсь плодами их творчества.
Нет, гуй надо делать только designer’ом. То что ты делаешь это рукоблудство и рутина, которая к пониманию отношения не имеет.
Память должен освобождать GC, а код писать кодогенератор.
Иначе все рукоблудство и рутина.
для гуйни это так на 100%
>Нет, гуй надо делать только designer’ом.
Не соглашусь. Сложный гуй (напр., если есть динамические элементы или нужны массивы контролов) проще сделать руками
Управление макетом в PyQt5
Значимая сторона в программировании графических приложений – управление макетом, то есть расположение виджетов в окне приложения. Управление макетом можно осуществлять двумя основными способами: с помощью абсолютного позиционирования или специальных классов.
Абсолютное позиционирование
Программист указывает позицию и размер каждого виджета в пикселях. При использовании абсолютного позиционирования, у нас есть следующие ограничения:
Следующий пример размещает виджеты с помощью абсолютного позиционирования.
Мы используем метод move(), чтобы разместить наши виджеты. В нашем случае ими являются метки. Мы размещаем их путём предоставления координат x и y. Начало координатной системы – левый верхний угол экрана. Значения x возрастают слева направо. Значения y – сверху вниз.
Виджет метки располагается в x=15 и y=10.
Блочный макет
Управление макетом классами макета является более гибким и практичным. Это предпочтительный путь размещения виджетов в окне. QHBoxLayout и QVBoxLayout – это основные классы макета, которые выстраивают виджеты горизонтально или вертикально.
Представьте, что мы хотим разместить две кнопки в правом нижнем углу. Чтобы создать такой макет, мы будем использовать один горизонтальный и один вертикальный блок. Чтобы создать необходимое свободное пространство, мы добавим показатель растяжения.
В этом примере мы размещаем две кнопки в нижнем правом углу окна. Они остаются там, когда мы изменяем размер окна приложения. Мы можем использовать и QHBoxLayout, и QVBoxLayout.
Здесь мы создаём две кнопки.
Мы создаём макет горизонтального блока, добавляем показатель растяжения и обе кнопки. Растяжение добавляет растянутое свободное пространство перед двумя кнопками. Это прижмёт их к правому краю окна.
Чтобы создать необходимый макет, мы поставим горизонтальный макет в вертикальный. Показатель растяжения в вертикальном блоке прижмёт горизонтальный блок с кнопками к нижней части окна.
Наконец, мы устанавливаем главный макет окна.
QGridLayout (сеточный макет)
Самый универсальный класс макета – это сеточный макет. Этот макет делит пространство на строки и столбцы. Чтобы создать сеточный макет, мы используем класс QGridLayout.
В нашем примере, мы создаём сетку из кнопок. Чтобы заполнить один промежуток, мы добавляем один виджет QLabel.
Создаётся экземпляр QGridLayout, он назначается как макет окна приложения.
Это метки, используемые в дальнейшем для кнопок.
Мы создаём список позиций для сетки.
С помощью метода addWidget, создаются и добавляются кнопки к макету.
Обзорный пример
Виджеты могут занимать несколько столбцов и строк в сетке. В следующем примере мы продемонстрируем это.
Мы создаём окно, в котором у нас есть три метки, две строки редактирования и один виджет редактирования текста. Макет сделан с помощью QGridLayout.
Мы создаём сеточный макет и устанавливаем промежуток между виджетами.
Если мы добавляем виджет к сетке, мы можем обеспечить объединение строк и столбцов виджета. В нашем примере, мы делаем так, что виджет reviewEdit объединяет 5 строк.
Эта часть руководства по PyQt5 была посвящена управлению макетом.
Как изменить размер столбцов для Table Widget PyQt5 (Qt Desinger)
Вопрос: Как сделать так чтобы столбцы 1 и 2 были к примеру по 40 пикселей в длину и ширину 20 а остальные растягивались для заполнения виджета?
1 ответ 1
void QHeaderView::setSectionResizeMode(int logicalIndex, QHeaderView::ResizeMode mode)
Устанавливает ограничения на то, как можно изменить размер раздела, указанного с помощью logicalIndex в заголовке, до тех, которые описаны в данном режиме. Логический индекс должен существовать во время вызова этой функции.
Эта функция была представлена в Qt 5.0.
Всё ещё ищете ответ? Посмотрите другие вопросы с метками python python-3.x pyqt5 gui pyqt или задайте свой вопрос.
Похожие
Подписаться на ленту
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
дизайн сайта / логотип © 2021 Stack Exchange Inc; материалы пользователей предоставляются на условиях лицензии cc by-sa. rev 2021.11.17.40781
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Я пытаюсь изучить это, переделав старую программу на C из командной строки, которая у меня есть для работы с пиксельной графикой.
На данный момент главное окно запускается как одиночный QLabel, показывающий увеличенную версию белого изображения 10 x 10 в увеличенном масштабе до 300 x 300.
Я использую resizeEvent (я также пробовал использовать paintEvent с той же проблемой), чтобы изменить масштаб изображения, чтобы заполнить окно по мере увеличения размера окна.
У меня вопрос: как изменить масштаб изображения, чтобы оно поместилось в окне при уменьшении размера окна? В его нынешнем виде размер окна не может быть меньше размера виджета, отображающего изображение. По сути, я могу сделать окно (и изображение) больше, но никогда меньше.
Мой код для этого ниже. В его нынешнем виде он работает только на основе изменений ширины окна, просто для простоты, пока я работаю над этим. Есть ли способ изменить размер окна, чтобы он был меньше самого большого виджета? Или есть лучший способ подойти к этой проблеме?
2 ответа
Хотя предлагаемое OP решение может работать, у него есть важный недостаток: он использует QScrollArea не по назначению (поскольку он никогда не используется для прокрутки ). Такой подход создает ненужные накладные расходы при изменении размера, поскольку представлению необходимо будет вычислить множество вещей о своем содержимом до «завершения» события изменения размера (включая диапазоны полос прокрутки и геометрию), которые, в конце концов, никогда не будут фактически использоваться.
Нашел решение. Оказывается, размещение изображения внутри виджета QScrollArea позволяет сделать окно меньше, чем изображение, которое оно содержит, даже если полосы прокрутки отключены. Затем это позволяет масштабировать изображение, чтобы оно соответствовало окну при уменьшении размера окна.
Как изменить размер интерфейса Windows 10
Стандартный размер элементов интерфейса (кнопки, иконки, шрифты, панели и так далее) обычно устраивает подавляющее большинство пользователей. Но с каждым годом мониторы становятся все больше, а их разрешения увеличиваются. В таком случае возникает необходимость увеличить масштаб системы или ее отдельных элементов. Кроме того, никто не отменял индивидуальные потребности пользователей, у которых необходимость сделать интерфейс Windows 10 больше продиктована особенностью зрения или просто личными предпочтениями. В этой статье собрали все возможные способы, с помощью которых вы сможете увеличить или уменьшить масштаб Windows 10.
Как увеличить размер интерфейса Windows 10
Первый и самый лучший вариант – увеличение масштабирования системы. Эта возможность доступна на подавляющем большинстве компьютеров с Windows 10. В этом случае система пропорционально увеличивает все части интерфейса Windows, включая кнопки, панели, шрифты, иконки и так далее.
После установки разрешения система попросит вас выйти и зайти заново. Из-за своих особенностей Windows не умеет полностью изменять масштаб системы без необходимости перезагрузки или выхода-входа.
Если к вашему компьютеру подключено два и больше мониторов, тогда сначала вам надо кликнуть на экран, масштаб которого вы хотите изменить. Windows может работать с разными значениями DPI на разных экранах, поэтому можно настроить этот параметр по своему усмотрению.
Для справки: хотя система не просит выйти и заново войти при изменении масштабирования других экранов (соответствующее уведомление появляется только при увеличении масштабирования основного дисплея), открытые приложения могут не совсем корректно отреагировать на внесенные вами изменения, поэтому лучше перезагрузить компьютер или выполнить выход из системы.
Стандартный набор масштабов интерфейса Windows может устроить не каждого пользователя, поэтому в параметрах предусмотрен вариант настраиваемого масштабирования. Там пользователь может установить собственное значение в диапазоне от 100% до 500%.
Предупреждение: не стоит указывать размер масштабирования выше того, что доступен для вашего монитора в стандартном списке. Подобное может привести к тому, что часть интерфейса не будет отображаться и вы не сможете вернуть все обратно. Настраиваемое масштабирование подходит для тех случаев, когда надо указать более точный процент увеличения, а не для установки экстремально высоких значений.
Примечание: к сожалению, большое количество людей страдает от определенных заболеваний глаз, при которых нарушается восприятие цветов. Для таких пользователей Microsoft предлагает включить цветовые фильтры в Windows 10, упрощающие работу с монитором.
Как исправить размытый шрифт и интерфейс в Windows 10
Если вы увеличили интерфейс Windows 10, тогда скорее всего вы столкнетесь с тем, что некоторые приложения начнут отображаться не совсем правильно. Шрифт будет выглядеть коряво, а само окно приложения будет словно слегка размытым. Опять же, это древняя болячка Windows, которую отчаянно пытаются залечить. К счастью, бороться с ней на современных версиях Windows 10 гораздо легче, а сама проблема затрагивает лишь классические Win32-приложения.
После этого размытие должно исчезнуть, а шрифты будут отображаться качественнее. Если после этого у вас все еще наблюдаются проблемы с рендерингом приложения, тогда имеет смысл попробовать провести калибровку монитора.
Как увеличить шрифт в Windows 10
Иногда бывает так, что пользователю не надо увеличивать весь интерфейс Windows, а только шрифты. К несчастью, здесь все гораздо сложнее. По каким-то странным причинам после обновления Windows 10 Creators Update (1703 15363) из панели управления исчез раздел, в котором пользователь мог отдельно настроить размер шрифта независимо от параметров масштабирования. Из-за этого приходится использовать сторонние приложения для увеличения шрифта в Windows 10, вроде system Font Size Changer. Это очень простая, но вместе с тем функциональная утилита, не требующая установки. Кстати, она уже полностью совместима с Windows 10 Fall Creators Update.
Для справки: выполнение этой инструкции требует наличия прав Администратора.
Как изменить размер иконок в Windows 10
Иконки и пиктограммы – еще одна часть интерфейса Windows, которую можно настраивать в зависимости от предпочтений пользователя. Иконки можно увеличить либо вместе с остальными частями интерфейса (когда вы изменяете масштабирование), либо независимо от них.
Как изменить размер иконок на рабочем столе Windows
Нажмите правую кнопку мыши на рабочем столе и выберите в меню пункт Вид. Вам будет доступно три параметра – мелкие, обычные и крупные иконки. По умолчанию используются обычные иконки.
Если вас не устраивают предустановленные варианты, вы можете точнее отрегулировать размер иконок на рабочем столе. Для этого достаточно зажать клавишу Ctrl и покрутить колесико мыши вперед для увеличения или назад для уменьшения. Таким образом можно сделать просто-таки гигантские или миниатюрные иконки. Надо лишь отметить, что не все иконки поддерживают сверхбольшие размеры. В таком случае пиктограмма будет оставаться прежней, но поле, по которому можно кликнуть для запуска приложения, будет увеличиваться.
Обычный размер иконок.
Самый крупный вариант
Самый мелкий вариант.
Как изменить размер иконок в Проводнике Windows
Иконки внутри проводника изменяются точно так же, как и на рабочем столе. Кликаете правой кнопкой мыши по пустому месту и выбираете один из трех параметров в меню Вид. Другой вариант – зажатая кнопка Ctrl и прокрутка колесика мыши вперед / назад для увеличения / уменьшения иконок.
Обратите внимание, что в этом случае будут изменяться иконки только в текущей папке. Остальные папки останутся со своими стандартными параметрами.
Чтобы не изменять размер иконок в каждой отдельной директории, задайте желаемый размер пиктограмм, а затем сделайте следующее:
Как увеличить панель задач Windows
Если у вас открыто или закреплено на панели задач большое количество приложений, тогда в определенный момент стандартный размер вам окажется маловат. Windows позволяет увеличить панель задач, чтобы на ней помещалось больше приложений.
Как изменить размер иконок на панели задач Windows
Последний пункт, который рассмотрим в этой статье – это размер иконок на панели задач. При изменении размера самой панели задач иконки остаются прежними. Их размер регулируется отдельно.
Учтите, что в этом случае счетчики уведомлений на иконках приложений (Почта, Telegram, Viber) могут перестать отображаться. Также исчезнет дата в правом углу. Вернуть обычный режим отображения можно аналогичным путем.
Windows 10 – гибкая и открытая для персонализации система. С помощью этих методов вы сможете подстроить ее внешний вид под свои нужды для оптимально комфортной и производительной работы. Конечно, существует еще много сторонних приложений для более глубокой и сложной кастомизации, но это тема уже для отдельной статьи. Эта же инструкция ориентирована в первую очередь на пользователей-новичков, которые не желают углубляться в дебри сложного тюнинга Windows сторонними (и часто не особо качественными) приложениями. Ну а если вы знаете все, что мы тут написали, тогда вы большой молодец!