c++ qt qt-creator qt-designer qsplitter

c++ - Cómo gestionar QSplitter en Qt Designer



qt-creator qt-designer (2)

Aún puede crear sus controles en un archivo .ui utilizando Qt Designer (integrado en Qt Creator). Dentro de Qt Designer, agregue un objeto QWidget a su diálogo. Luego, a partir de la clase derivada de QDialog, escribirá, directamente en su constructor, crear su QSplitter utilizando el objeto QWidget como padre.

De esta manera, puede crear todo menos el objeto de división desde Qt Designer.

Creo que también es posible crear el elemento QSplitter (ya que puede crear un QButton , QCheckBox ...) directamente desde Qt Designer.

Cuando presiono un botón, abro un cuadro de diálogo donde el usuario selecciona las cosas y presiono ''Ok'' al final. Quiero un divisor en este diálogo. El panel izquierdo mostrará el árbol y el derecho mostrará otra cosa. ¿Cómo hago eso bien?

Del ejemplo de Qt en sí:

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);

Entonces, en este ejemplo, el divisor se crea sin ningún recurso de diálogo. Si tengo que crear de esta manera, eso significaría que también tengo que crear todos mis controles en el código en lugar de Qt Creator.

¿Cuál es la forma correcta de hacer esto cuando necesito otros controles en la pantalla?


Simplemente puede crear un divisor que contenga elementos en Qt Designer:

  1. Primero coloque sus widgets en su diálogo o widget en el diseñador (no deben estar en un diseño)

  2. Seleccione los widgets que desea que estén en un splitter (manteniendo pulsada la tecla CTL y haciendo clic en ellos)

  3. Haga clic con el botón derecho en un widget seleccionado y, en el menú Diseño , seleccione Disposición horizontalmente en Splitter o Disposición verticalmente en Splitter .

  4. Ahora aplique un diseño de cuadrícula al diálogo y todo debería estar bien. Vería algo como esto en la vista Inspector de objetos: