Agregar objetos QTextEdit a un QMainWindow
-
22-10-2019 - |
Pregunta
Parece que estoy teniendo un problema. Objetivo: quiero agregar dinámicamente QTextEdit
a un QMainWindow
, Tengo muchos datos que deseo dividir entre varios QTextEdit
objetos. He estado mirando centralWidget
e hice algo ui->setupUi(this);
generado por el creador QT y vio que el padre para objetos de interés era el widget central del QMainWindow
. Así he intentado algo como esto:
this->m_vecTextEdits.push_back( new QTextEdit(this->centralWidget()) );
dónde 'this
' es el QMainWindow
. Solo quiero agregar estos QTextEdit
hacia QMainWindow
y luego quítelos. También probé new QTextEdit(this)
esperando que aparezca en el QMainWindow
con las propiedades definidas por la geometría de los objetos para no tener suerte.
Si yo setCentralWidget
ser el de la QTextEdit
de lo que funciona, pero no quiero que el objeto consuma todo QMainWindow
y restringir el acceso a los widgets existentes.
Así que necesito un consejo de cómo puedo agregar QTextEdit
widgets al existente centralWidget
del QMainWindow
Y haga que aparezcan en la ventana y también eliminen.
Solución
Quería agregar múltiples QTextedit para poder usar un QListWidget de residencia (la propiedad de índice) para cambiar entre muchos widgets QTextedit
Podrías poner un QStackedWidget
en lugar de tu QTextEdit
, y agregar todo el QTextEdit
s para eso.
Solo uno de los TextEdits sería visible en todo momento, pero puede cambiar entre ellos automáticamente conectando la señal currentRowChanged(int)
de tu QListWidget
a la ranura setCurrentIndex(int)
para que el índice del QTextEdit
Manténgase igual que el índice del elemento seleccionado en su lista.
los QStackedWidget
Reemplazará su contenedor m_vectextEdits también.
Otros consejos
No es suficiente simplemente crear los objetos de widget; También debe agregarlos a un objeto de diseño. Prueba algo como:
QBoxLayout * bl = new QBoxLayout(centralWidget());
QTextEdit * t = new QTextEdit;
bl->addWidget(t);