QWidget :: error setLayout: El intento de establecer QLayout [...], que ya cuenta con un diseño

StackOverflow https://stackoverflow.com/questions/3850252

  •  27-09-2019
  •  | 
  •  

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


}
¿Fue útil?

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
scroll top