El widget central de QT no aparece.
Tengo un problema con la visualización de setCentralWidget().
Aquí está el constructor de la ventana principal:
MW_MusicRenamerApp::MW_MusicRenamerApp(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MW_MusicRenamerApp)
{
//Configuración de la ventana principal
//Utilizando funciones para configurar, establecer y cambiar partes de la ventana principal
addToolBar(Qt::RightToolBarArea, createRightToolBar());
setCentralWidget(createCentralWidget());
ui->setupUi(this);//por el momento de escribir esto, no sé qué es esto, así que no lo elimines
}
Aquí está la creación del widget central:
QWidget *MW_MusicRenamerApp::createCentralWidget()
{
QWidget *centralWgt = new QWidget(); //este será el que se devuelva
//Creación de la parte izquierda del widget central
QStringListModel *strlm_fileNames = new QStringListModel(m_strl_fileNames_temp, 0);
QListView *lv_fileNames = new QListView();
lv_fileNames->setModel(strlm_fileNames);
//Creación de la parte derecha del widget central
QStringListModel *strlm_temp = new QStringListModel(m_strl_fileNames_temp, 0);
QListView *lv_renamingResult = new QListView();
lv_renamingResult->setModel(strlm_temp);
//Configuración del diseño
QHBoxLayout *hbxl_centralWgtLayout = new QHBoxLayout();
hbxl_centralWgtLayout->addWidget(lv_fileNames);
hbxl_centralWgtLayout->addWidget(lv_renamingResult);
centralWgt->setLayout(hbxl_centralWgtLayout);
centralWgt->show(); //¿Realmente necesito esto?
return centralWgt;
}
Entonces, cuando ejecuto mi programa, el widget central no aparece, incluso si intento establecer QPushButton como widget central, como esto:
QPushButton *temp_btn = new QPushButton("UN GRAN BOTÓN");
setCentralWidget(temp_btn):
o así:
setCentralWidget(new QPushButton("UN GRAN BOTÓN"));
¿Qué estoy haciendo mal?
davy.ai
Parece que el problema podría estar en el diseño del widget central. En la función
createCentralWidget()
, has creado un diseño horizontal y has añadido dos widgetsQListView
a él. Sin embargo, no has especificado ningún tamaño para los widgetsQListView
, lo que podría estar causando que se oculten o no se muestren correctamente.Una solución podría ser establecer un tamaño específico para los widgets
QListView
utilizando la funciónsetFixedSize()
, o establecer sus tamaños mínimo y máximo. Alternativamente, puedes intentar agregar espaciadores al diseño para corregir los tamaños de los widgets, o utilizar diseños anidados para controlar mejor la ubicación de los widgets.Además, puedes intentar añadir algunas instrucciones de salida de depuración a tu código para ver si el widget central realmente se está estableciendo y mostrando. Por ejemplo, puedes agregar una instrucción
qDebug()
después de establecer el widget central para comprobar si se está mostrando o no:Espero que estas sugerencias te ayuden a identificar y solucionar el problema con tu
setCentralWidget()
para que se muestre correctamente.