Подтвердить что ты не робот

Как управлять QSplitter в Qt Designer

Когда я нажимаю кнопку, я вызываю диалог, в котором пользователь выбирает вещи и нажимает "ОК" в конце. Я хочу сплиттер в этом диалоговом окне. В левой панели будет показано дерево, а справа отобразится другое. Как мне это сделать?

Из самого примера Qt:

 QSplitter *splitter = new QSplitter(parent);
 QListView *listview = new QListView;
 QTreeView *treeview = new QTreeView;
 QTextEdit *textedit = new QTextEdit;
 splitter->addWidget(listview);
 splitter->addWidget(treeview);
 splitter->addWidget(textedit);

Итак, в этом примере сплиттер создается без какого-либо ресурса диалога. Если мне нужно создать этот путь, это означало бы, что я должен создать все мои элементы управления в коде, а не Qt Creator.

Каков правильный способ сделать это, когда мне нужны другие элементы управления на экране?

4b9b3361

Ответ 1

Вы можете просто создать разделитель, содержащий элементы в Qt Designer:

  • Сначала разместите свои виджеты в своем диалоговом окне или виджет в дизайнере (они не должны быть в макете)

  • Выберите виджетов, которые должны быть в сплиттере (удерживая CTL и нажимая на них)

  • Щелкните правой кнопкой мыши на выбранном виджет и выберите Макет Lay out Horizontally в Splitter или Lay out Vertically в Splitter.

  • Теперь примените макет сетки к диалоговому окну, и все будет в порядке. Вы увидите что-то подобное в Object Inspector View:

enter image description here

Ответ 2

Вы можете создать свои элементы управления в файле .ui с помощью Qt Designer (интегрированного в Qt Creator). Внутри Qt Designer добавьте объект QWidget к вашему диалоговому окну. Затем из класса QDialog, который вы напишете непосредственно в своем конструкторе, создайте свой QSplitter, используя объект QWidget в качестве родителя.

Таким образом вы можете создать все, кроме объекта сплиттера, из Qt Designer.

Я думаю, что также возможно создать QSplitter (так как вы можете создать элемент QButton, QCheckBox...) непосредственно из Qt Designer.