QWidget :: erreur de setLayout: Tentative de définition QLayout [...], qui a déjà une mise en page

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

  •  27-09-2019
  •  | 
  •  

Question

Lors de l'exécution (pas d'erreur de compilation) je reçois sur la console

  

QWidget :: setLayout: Tentative de définition QLayout "" sur CGSearchResult "",   qui a déjà une mise en page

Je suis en utilisant le code suivant:

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


}
Était-ce utile?

La solution

http://qt-project.org/doc/qt -4,8 / qwidget.html # setLayout

  

S'il y a déjà un gestionnaire de mise en page installée sur ce widget, QWidget ne vous laissera pas installer un autre. Vous devez d'abord supprimer le gestionnaire de mise en page existante (retournée par la mise en page ()) avant de pouvoir appeler setLayout () avec la nouvelle mise en page.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top