Создание прокручиваемого окна без макетов

Я пытаюсь добиться чего-то, что, как мне казалось, будет очень легко сделать. Но почему-то QtDesigner сводит меня с ума, он просто не будет работать...

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

Итак, я добавил ScrollArea в QtDesigner и добавил все элементы в качестве дочерних элементов этой ScrollArea (что, кстати, также было занозой в заднице, потому что, очевидно, перетаскивание в средстве просмотра объектов не имеет значения, и редактирование файла .ui вручную, тоже нельзя... отлично).

Итак, результат, который я имею сейчас, следующий:

  • перед изменением размера - нет полосы прокрутки, элементы внизу недоступны

Создание прокручиваемого окна без макетов

  • изменен размер по вертикали - некоторые вещи все еще отломаны внизу

Создание прокручиваемого окна без макетов

Итак, как вы видите, хотя я и создал ScrollArea... Здесь нет области прокрутки. Итак, я немного погуглил и обнаружил, что вы можете добавлять макеты в свою область прокрутки, и да, наконец, полосу прокрутки! Но как же мне в этом мире расположить элементы так, как вы видите на скринах, с макетами. Они такие супер ограничительные.

Как я должен просто получить вертикальную полосу прокрутки без этого ограничительного макета?!

Вот как выглядит мой просмотрщик объектов

Создание прокручиваемого окна без макетов

А вот что вызывается при создании GUI:

ui->setupUi(this);
//setCentralWidget(ui->scrollArea);
//ui->scrollArea->setWidgetResizable(true);

Я пробовал это с комментариями и без них. Нет полосы прокрутки, что бы я ни делал.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
264
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Попробуйте это исправить:

В дизайнере Qt:

  • Выберите QScrollArea объект.
  • Снимите QScrollArea свойства widgetResizable.

В С++:

// If you want to set `widgetResizable` programmaticly
ui->scrollArea->setWidgetResizable(false); // Optional if you did it in Qt Designer
ui->scrollArea->widget()->adjustSize();

Другие вопросы по теме