QWidget :: error setLayout: El intento de establecer QLayout [...], que ya cuenta con un diseño
Pregunta
En la ejecución (sin error de compilación) consigo en la consola
QWidget :: setLayout: El intento de establecer QLayout "" en la CGSearchResult "", que ya cuenta con un diseño
Estoy utilizando el siguiente código:
CGSearchResult::CGSearchResult(QWidget *parent) : QWidget(parent)
{
initControls();
SetTableContent();
}
void CGSearchResult::initControls()
{
backButton = new QPushButton(tr("&Back"));
connect(backButton, SIGNAL(clicked()), this, SLOT(showHome()));
model=new QStandardItemModel();
QWidget::setFont(QFont("Courier New", 8, QFont::Bold));
searchTable = new QTableView(this);
searchTable->showGrid();
searchTable->resize(720,400);
searchTable->horizontalHeader()->setDefaultSectionSize(170);
searchTable->verticalHeader()->setDefaultSectionSize(50);
searchTable->verticalHeader()->hide();
searchTable->horizontalHeader()->setResizeMode(QHeaderView::Fixed);
searchTable->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
QGridLayout *layout = new QGridLayout();
layout->addWidget(backButton, 0, 0, 1, 1);
layout->addWidget(searchTable, 2, 0, 1, 1);
setLayout(layout);
}
Solución
http://qt-project.org/doc/qt -4.8 / qwidget.html # setLayout
Si ya hay un controlador de distribución instalado en este widget, QWidget no permite instalar otro. Primero debe eliminar el controlador de distribución existente (devuelto por el diseño ()) antes de poder llamar setLayout () con el nuevo diseño.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow