С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
2 / 2 / 0
Регистрация: 18.12.2021
Сообщений: 43
1

Отличается вид при просмотре файла .ui и при запуске приложения

19.07.2023, 01:14. Показов 928. Ответов 20
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот, например, это вид из дизайн-редактора:
Название: IMG_20230719_011010_740.jpg
Просмотров: 109

Размер: 3.8 Кб

А это вид при запуске приложения
Название: IMG_20230719_011010_348.jpg
Просмотров: 109

Размер: 3.7 Кб

Наверное какие-то проблемы с масштабом, не знаю.
Я работаю в QT Creator.
Подскажите как решить проблему. Я вроде бы ничего не трогал, как будто само
0
Лучшие ответы (1)
IT_Exp
Эксперт
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
Блог
19.07.2023, 01:14
Ответы с готовыми решениями:

Компьютер выключается при запуске игр, реже при просмотре фильмов
Доброго времени суток! Подскажите, пожалуйста, в чем может быть беда? Видеокарта msi rx6600,...

Подвисания при просмотре видео и в играх при первом запуске ПК
Доброго времени суток, проблема в следующем: после включения ПК при просмотре видео и в играх есть...

В аниматоре при просмотре анимации все работает правильно, но при запуске персонаж двигается не так
В аниматоре при переходе из бега в слайд персонаж опускается как и в анимации, которую импортировал...

Копирование файла при запуске приложения
Имеется файл, расположенный в директории по умолчание, по нажатию кнопки его надо скопировать в...

Поиск файла при запуске приложения
Имеется launcher для некоторого приложения. При первом его запуске открывается окно с целью...

20
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
19.07.2023, 02:01 2
Компоновщиками пользуетесь?
0
2 / 2 / 0
Регистрация: 18.12.2021
Сообщений: 43
19.07.2023, 02:07  [ТС] 3
Нет
0
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
19.07.2023, 06:30 4
Пользуйтесь, тогда таких косяков не будет.

Выбираете в дизайнере виджеты, которые хотите позиционировать друг относительно друга с помощью Ctrl + левая клавиша мыши, находите две кнопки сверху "Скомпоновать по горизонтали", "Скомпоновать по вертикали", и компонуете виджеты. Так же можно компоновать и компоновщики. Таким образом виджеты никуда не денутся.

Ну, и лучше вначале компоновать виджеты через код. Так виднее, что и как. Дизайнер - это уже следующий уровень, когда лень тратить время на кодирование формы. Впрочем, я предпочитаю всё равно через код. Некоторые вещи удаётся таскать из проекта в проект простым копированием кусков кода.
1
2 / 2 / 0
Регистрация: 18.12.2021
Сообщений: 43
19.07.2023, 23:25  [ТС] 5
Это понятно, но как мне теперь всё исправить? У меня теперь везде так, даже в нових проектах. Раньше такого не было.
Как я уже говорил, думаю что это какая-то проблема с масштабом, но я не знаю как его можно изменить
0
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
19.07.2023, 23:34 6
Цитата Сообщение от WhoAm I Посмотреть сообщение
как мне теперь всё исправить?
Как я написал выше. Если вам это непонятно - у меня слова закончились.
0
2 / 2 / 0
Регистрация: 18.12.2021
Сообщений: 43
19.07.2023, 23:55  [ТС] 7
Я нашел в чём проблема. Раньше всё работало хорошо, потому-что тогда у меня на пк стояло расширение поменьше, 1600х900 и ''Изменение размера текста, приложений и других елементов" было 100%, тепер, я поставил расширение 1920х1080 и ''изменение размера" автоматически установилось как 125% и поэтому масштаб в дизайнере и в окне не совпадал. Когда поставил на 100% всё начало работать нормально, вот только всё очень маленькое.
0
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
20.07.2023, 00:07 8
Если ваши приложения нужны только вам - поздравляю. Если вы хотите их распространять среди своих знакомых (хотя бы) или коллег - компоновщики знать нужно. Более того - необходимо. Заставлять ставить посторонних пользователей угодное вам разрешение - за гранью добра и зла.
1
1081 / 685 / 184
Регистрация: 30.03.2021
Сообщений: 2,138
20.07.2023, 00:20 9
Лучший ответ Сообщение было отмечено WhoAm I как решение

Решение

WhoAm I, у вас виджеты просто накиданы на форму?
Ender Che, советует вам правильно.
Надо ложить виджеты в компоновщики, а эти компоновщики уже ложить на форму.
Тогда вы могли бы задать spasing между виджетами и ситуации, как на скрине, не произошла.
(попробуйте еще поизменять размер формы- если виджеты не в компоновке-будет не красиво.)
И да, если в дизайнере не очень понятно -сделайте кодом, мб так лучше зайдет.
По поводу разрешения экрана вот статья:
Кликните здесь для просмотра всего текста
1
2 / 2 / 0
Регистрация: 18.12.2021
Сообщений: 43
20.07.2023, 02:46  [ТС] 10
Большое спасибо вам за статью
0
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,086
20.07.2023, 08:35 11
Ender Che, Совершенно не обязательно знать компоновщики. Масштабирование и шрифтов и рамзеров виджетов
можно делать и самому изнутри программы, как требуется.
0
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
20.07.2023, 09:17 12
peter_irich, хм... Компоновщики сильно упрощают размещение виджетов и их взаимное расположение. Если хочется извращений - то, конечно, можно от геометрии отталкиваться. Кмк, это из той же серии, как и формошлёпство против кодерства. Только зачем тогда заниматься формошлёпством и потом эту форму изнутри программы масштабировать?
0
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,086
20.07.2023, 13:42 13
Ender Che, это уменьшает размер исходного текста, размер исполнимого файла и упрощает контроль над видом программы.
Достаточно изменить входной параметр, например, в считываемом файле или же программа сама может подстраиваться
под размер экрана.
0
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
20.07.2023, 14:24 14
Цитата Сообщение от peter_irich Посмотреть сообщение
это уменьшает размер исходного текста, размер исполнимого файла
Тут я бы поспорил.
xml-исходник из дизайнера в конечном счёте всё равно транслируется в ui_*.h и ui_*.cpp, где подключаются соответствующие библиотеки виджетов. Просто исходники получаются автоматически, а не ручками. И на размер исполняемого файла они никак повлиять не могут в силу указанного выше.
Цитата Сообщение от peter_irich Посмотреть сообщение
упрощает контроль над видом программы
А вот тут я соглашусь. Если мы рассматриваем дистрибуцию программы на несколько платформ, например, винда, линукс и мак одновременно, то это полезно.

Мне такой всеобъемлющий контроль над видом приложения не нужен, т.к. продакта не пишу, чисто для себя что-то ваяю в свободное от основной работы время.
0
kapbepucm
20.07.2023, 18:07
  #15

Не по теме:

Цитата Сообщение от Ender Che Посмотреть сообщение
Если ваши приложения нужны только вам - поздравляю.
Я когдато раньше чтото для себя писал тоже без компоновщиков, были мысли- зачем мне эти лишние телодвижения. А потом я приобрёл другой монитор, а там надо было слегка другой DPI- ох как я был неправ :D

0
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
20.07.2023, 19:25 16
Цитата Сообщение от kapbepucm Посмотреть сообщение
ох как я был неправ
Вот же.

Но спасибо peter_irich за дельное обоснование за рулёжку отрисовки программно. В пору, когда я сидел на линуксе и на винде одновременно, отрисовывать в дизайнере то на линуксе, а потом править на винде или наоборот было просто адом адищенским. Я потому на компоновку через код и перешёл, что всегда нормальный результат после компиляции получается.
0
1081 / 685 / 184
Регистрация: 30.03.2021
Сообщений: 2,138
20.07.2023, 21:05 17
Цитата Сообщение от peter_irich Посмотреть сообщение
это уменьшает размер исходного текста, размер исполнимого файла и упрощает контроль над видом программы.
Извините, но я чуток не согласен:
Кликните здесь для просмотра всего текста
Думаю, это имеет смысл, если точно знаем, что форма не будет изменять свой размер (или экран-разрешение) и виджеты не будут в будущем добавлены/удалены или менять свое расположение. (в каких-то встроенных штуках наверное можно применить такой подход)
Иначе прийдется делать метод, который располагает виджеты относительно геометрии окна и вызывать его в resizeEvent() формы. Это я бы не назвал уменьшением текста.
И вот написали такой метод, а комбобокс после кнопки добавить забыли- берем и переписываем с матюками расположение всего что ниже(правее) кнопки. Упрощение контроля над видом не наблюдается.
Насчет размера исполняемого файла хз, но не думаю что это актуально, кроме специфических случаев-тех же embedded например.
0
352 / 207 / 52
Регистрация: 18.10.2017
Сообщений: 2,086
20.07.2023, 21:14 18
Ender Che, так при руяном масштабировании из программы и не вознкают ui-файлы.

Добавлено через 5 минут
sdf45, да, при исправлении, например, при добавлении, прихотися что-то испралять, но при уже созданной структуре интерфейса это уже не так трудно. Скажем, координаты виджетов можно хранить в массивах, а дальше они привязываются к неким якорям. И это именно для того, чтобы программа сама масштабировалась к экрану, на котором запущена.
0
1081 / 685 / 184
Регистрация: 30.03.2021
Сообщений: 2,138
20.07.2023, 21:52 19
Цитата Сообщение от peter_irich Посмотреть сообщение
Скажем, координаты виджетов можно хранить в массивах, а дальше они привязываются к неким якорям.
Цитата Сообщение от sdf45 Посмотреть сообщение
комбобокс после кнопки добавить забыли- берем и переписываем с матюками расположение всего что ниже(правее) кнопки
Так же получается?
Или есть какой-то подход, который избавляет от переписывания всего затронутого удалением/добавлением/перемещением? Я такого не делал ни разу, хз, но мне кажется, что написать это будет не тривиальной задачей. Хотя, вспомнил вот, у меня бывали случаи, когда виджеты снизу/справа дёргались при ресайзе окна с Qt-шным компоновщиком. Возможно, если написать свой компоновщик как вы говорите, то эти баги бы исчезли (наверное)
0
489 / 382 / 74
Регистрация: 29.05.2018
Сообщений: 1,178
20.07.2023, 23:00 20
Цитата Сообщение от peter_irich Посмотреть сообщение
при руяном масштабировании из программы и не вознкают ui-файлы
А из откуда тогда компилируются виджеты? Прямо из xml-а? Позвольте в это не поверить. Тогда бы уже давно превалирующим вариантом было бы формошлёпство. Как это произошло с dll-ками. Однако в примерах самого Qt почему-то чаще всего встречается именно кодирование виджетов, а не создание форм в дизайнере.
0
20.07.2023, 23:00
BasicMan
Эксперт
19315 / 2622 / 84
Регистрация: 17.02.2009
Сообщений: 10,364
Блог
20.07.2023, 23:00
Помогаю со студенческими работами здесь

Как при запуске приложения загрузить данные из файла?
Здравствуйте! Для загрузки данных из файла - есть статический класс и в нём асинхронный метод...

Перезагружается ноутбук при запуске некоторых игр, приложений, при просмотре некоторых видеозаписей
Доброго времени суток, уважаемые. В прикрепленном скрин, того, что имеется. В целом, проблема в...

Как проще получить локальный путь при запуске файла приложения
А то щаз приходится при запуске сначала создавать каталог, потом узнавать полный путь к нему,...

При запуске из среды программа работает, при запуске выполняемого файла выдает ошибку
Добавлено через 1 минуту 35 секунд как исправить ошибки в названии темы? там должно было быть...

Есть ли разница в трафике при просмотре видео с компьютера и при просмотре через удаленный экран?
Например, есть видео на ютуб, мы его посмотрели и у нас израсходовалось определенное количество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Блоги программистов
Обновление сайта www.historian.b­y
Reglage 05.01.2025
Обещал подвести итоги 2024 года для сайта. Однако начну с того, что изменилось за неделю. Добавил краткий урок по последовательности действий при анализе вредоносных файлов и значительно улучшил урок. . .
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list): s=^y] p=x and y for i in range(1,len(x)): s. append((x^y)^p) p=(x and y)or(p and (x or y)) return s x=list() y=list()
Это мы не проходили, это нам не задавали...(аси­­хронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9 Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget. . .
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin. Есть ещё регистры,. . .
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru