Как управлять 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.

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

19

Решение

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

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

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

  3. Щелкните правой кнопкой мыши на выбранном виджете и из раскладка выбор меню Выложить горизонтально в Splitter или же Выложить вертикально в Splitter.

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

введите описание изображения здесь

44

Другие решения

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

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

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

0

По вопросам рекламы [email protected]