|
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 148
|
|
HeightForWidth22.01.2026, 19:40. Показов 860. Ответов 12
Поместил в QtDesigner элемент типа QGridLayout на MainWindow, на этот QGridLayout еще 2 подслоя, QHBoxLayout один под другим,
на верхний поместил несколько элементов типа QLabel и QLCDNumber; запустил приложение и элементы не растягиваются и конечно не изменяется высота шрифта (как если бы не было QGridLayout и подслоя). Как надо переопределять метод heightForWidth: для каждого элемента создавать дочерний элемент и писать руками свою функцию heightForWidth, и в конструкторе вызвать sizePolicy().setHeightForWidth(true); возможно переопределить и SizeHint() Либо создать дочерний класс от QGridLayout, переопределить hasHeightForWidth и heightForWidth только для QGridLayout, в heightForWidth перебрать все элементы обоих подслоев и как-то вычислить Height, Width и возможно высоту шрифта? Второе кажется проще, хотя и грубее. Может надо устанавливать SizePolicy чтобы элементы QLabel и QLCDNumber изменяли размеры от растягивания окна?
0
|
|
|
1566 / 739 / 321
Регистрация: 02.05.2020
Сообщений: 1,658
|
||
| 22.01.2026, 23:43 | ||
|
0
|
||
|
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,690
|
|||||||
| 23.01.2026, 09:51 | |||||||
0
|
|||||||
|
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 148
|
|
| 23.01.2026, 09:54 [ТС] | |
|
tmp.zip подправленная компилировшияся версия проекта, а Grid Layout т.к. в предыдущем проекте без слоев это было 4 ряда 2 столбца, а нижние слои содержат маленьких элементов 40 (в плане) и конечно нужен сложный слой. Исправляю по предыдущему замечанию.
0
|
|
|
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 148
|
||||||
| 23.01.2026, 12:24 [ТС] | ||||||
|
Упрощенный проект tmp1.zip.В ui_mainwindow.h удалил промежуточный виджет (типа verticalLayoutWidget) между centralWidget и главным слоем, вместо него использовал этот centralWidget, строку
Уже растягиваются элементы QLCDNumber, возможно и QLabel (от минимального размера). (verticalLayoutWidget не был виден в QtDesigner)
0
|
||||||
|
388 / 333 / 65
Регистрация: 14.10.2014
Сообщений: 1,439
|
||
| 24.01.2026, 20:14 | ||
|
будет просто ui->setupUi() (или как там она - уже не помню год назад с Qt работал). То есть будет ссылка на функцию где "наформошлёпили" интерфейс. Вот там - да она уже должна быть. А вообще - налицо неправильная работа с компоновщиками. Если работа идёт в QtDesigner - и при этом пришлось вызывать у себя в коде вещи наподобие sizePolicy().setHeightForWidth(true) - скорее всего работа в QtDesigner проведена плохо.....
0
|
||
|
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 148
|
|
| 26.01.2026, 10:14 [ТС] | |
|
Создавал проекты в Qt4.7 и Qt5 (можно не удалять промежуточный виджет) и без вписывания строки centralWidget->setLayout(verticalLayout)
в ui_mainwindow.h ничего не растягивалось
0
|
|
|
2673 / 1335 / 480
Регистрация: 08.11.2016
Сообщений: 3,690
|
|||
| 26.01.2026, 10:37 | |||
ui_<имя класса>.h на который я и указал
0
|
|||
|
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 148
|
|
| 26.01.2026, 19:30 [ТС] | |
|
Вставлял в некоторый подслой Tab Widget, так его вкладке (tab_3) тоже пришлось сделать tab_3->setLayout(horizontalLayout_4), где horizontalLayout_4 слой внутри вкладки tab_3; может контекстным меню в QDesigner как то делается слой Layout'ом вкладки tab_3, или не попадаю, но писать текст приходится руками, QtCreator периодически эти 2 строки (centralWidget-set... и tab_3_set...) удаляет, так я в Fare быстрой клавишей восстанавливаю. Иначе часть элементов растягивается, а которые на вкладке - нет. А если будет два Layouta на вкладке tab_3 от Tab Widget, то как писать tab_3->setLayout? через запятую оба Layout'a? Или над ними Layout?
0
|
|
|
4 / 4 / 0
Регистрация: 01.10.2023
Сообщений: 44
|
|
| 26.01.2026, 19:59 | |
|
jykm, покажите скриншот ожидаемого макета в Qt дизайнере или хоть в чем-то типа Paint-a, с пояснениями - где должно что лежать, меняться или быть одинаковым и тд и тп. А то все эти ваши: "вот я положил хреновину на фиговину, посыпал штуковинами - ниче не получается, может мне еще финтифлюшку туда добавить??" не дают понятия о сути вопроса.
0
|
|
|
388 / 333 / 65
Регистрация: 14.10.2014
Сообщений: 1,439
|
|
| 26.01.2026, 20:11 | |
|
jykm, Вот я собрал и запустил приложуху - и что в ней не так?
0
|
|
|
0 / 0 / 0
Регистрация: 03.08.2017
Сообщений: 148
|
|
| 27.01.2026, 08:20 [ТС] | |
|
Проект tmp2.zip в Tab Widget правая половина вкладки не растягивается. Qt Creator склонен в ui_mainwindow.h удалять строку tab_3->setLayout(gridLayout); и centralWidget->setLayout(verticalLayout);
и допускается ли добавить строку tab_3->setLayout(gridLayout_2)? Не допускается -- я делаю над 2 Lauout'ами новый слой
0
|
|
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536
Одним из. . .
|
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
|
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
|
|
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
|
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога
Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
|
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование
. \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json>
Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом.
# Check if. . .
|
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так:
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347
Основана на STM32F303RBT6.
На борту пять. . .
|