Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Салага2015
4 / 4 / 0
Регистрация: 06.05.2016
Сообщений: 71
1

Добавить QSplitter в Qt Designer

22.04.2019, 13:59. Просмотров 1826. Ответов 5

Здравствуйте.
Мне необходимо добавить вертикальный сплиттер в QGridLayout при помощи Qt Designer.
Примерная иерархия виджетов:
C++ (Qt)
1
2
3
4
5
MainWindow
    centralWidget
        gridLayout
            tableView
            splitterVertical
Проблема заключается в том, что просто перетащить сплиттер невозможно, т.к. в списке он отсутствует. Однако можно выбрать два виджета и скомпоновать их, тогда у нас автоматически появится сплиттер. Проблема заключается в том, что второй виджет мне не нужен, а скомпоновать один единственный - невозможно.
Сплиттер нужен для содержания других виджетов, которые меняются (т.е. старый удаляется, новый появляется) по требованию пользователя. Количество виджетов, содержащихся в сплиттере, неизвестно. Это может быть 0, а может и 3.
Без дизайнера всё это сделано и работает, однако сказали, что необходимо всё gui создавать непосредственно в дизайнере, поэтому, пожалуйста, не говорите "пиши руками".
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2019, 13:59
Ответы с готовыми решениями:

Как добавить кнопку на QSplitter
Как добавить кнопку на QSplitter? Наподобии того как это реализовано в Gwenview:

Как в Qt Designer добавить на форму VideoWidget?
Где он находится? В ToolBox я его не нахожу, обычный Widget есть, Видео - нет

QSplitter - Регулировка размеров. [Qt/C++]
Добрый день, как регулировать размеры QSplitter? p.s красным показано как я хочу чтобы было при...

QSplitter и растяжение по-умолчанию
Есть у меня окно(виджет) с установнным сплитрером с виджетами. Но когда окно открывается, я хочу...

Проверить наличие виджета в QSplitter
Здравствуйте, не подскажете можно ли как-то проверить был ли добавлен виджет (QTextEdit) в...

5
0x90h
544 / 361 / 139
Регистрация: 01.10.2015
Сообщений: 1,099
22.04.2019, 14:26 2
Цитата Сообщение от Салага2015 Посмотреть сообщение
Проблема заключается в том, что второй виджет мне не нужен, а скомпоновать один единственный - невозможно.
Ну и подставьте виджет-"пустышку", placeholder, единственной задачей которого будет "занимать место". А уже в процессе работы, из кода можно заменить его на реально потребный виджет, QWidget *QSplitter::replaceWidget(int index, QWidget *widget)

что необходимо всё gui создавать непосредственно в дизайнере
Заведомо невыполнимое требование, новые виджеты все равно будут добавляться из кода в процессе выполнения.
1
Салага2015
4 / 4 / 0
Регистрация: 06.05.2016
Сообщений: 71
22.04.2019, 15:07  [ТС] 3
Цитата Сообщение от 0x90h Посмотреть сообщение
Ну и подставьте виджет-"пустышку"
Разве это не трата ресурсов в никуда?
0
Анна по жизни
278 / 167 / 62
Регистрация: 13.03.2019
Сообщений: 405
22.04.2019, 15:11 4
У меня похожее решение в моём приложении. С одной стороны сплиттера постоянно находится QListView, с другой стороны QStackeldWidget, который наполняю уже в коде.

Можно в качестве пустышки скомпоновать постоянный виджет и объект из семейства QLayout. И уже программно вставлять и убирать из него другие виджеты. Всё равно в сгенерированном коде будет фигурировать пустой виджет - QLayout тоже не терпит пустоты.
0
0x90h
544 / 361 / 139
Регистрация: 01.10.2015
Сообщений: 1,099
22.04.2019, 15:15 5
Сама идея сплиттера подразумевает разделение двух виджетов. Трата ресурсов в никуда - это как раз ваше ТЗ, с формулировками типа "весь гуй тока в дизигнере", противоречащими логике и здравому смыслу:
однако сказали, что необходимо всё gui создавать непосредственно в дизайнере
Если что-то проще сделать средствами дизайнера, сделайте, если выгоднее работать из кода - поступайте именно так. Вам шашечки, или ехать?
0
Анна по жизни
278 / 167 / 62
Регистрация: 13.03.2019
Сообщений: 405
22.04.2019, 15:20 6
Лучший ответ Сообщение было отмечено Салага2015 как решение

Решение

Салага2015, кстати, сейчас попробовала. В Designer можно создать пустой сплиттер.

Ставишь на форму два виджета, объединяешь их сплиттером, удаляешь два вджета. На форме остаётся пустой сплиттер.

Не по теме:

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

1
22.04.2019, 15:20
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2019, 15:20

Как растянуть QScrollArea по QSplitter?
В общем необходимо растянуть QScrollArea по QSplitter. Т.к. по дефолту получаю что то подобное:...

Как закрасить разделитель QSplitter определенным цветом?
Как закрасить разделитель QSplitter определенным цветом?Точнее ту полоску, которая разделяет виджеты

altium designer как добавить соединение???
Доброго времени суток. Начал освоение altium desykner. Импортировал проект из P-CAD 2006....


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.