Sunday, March 20, 2011

QWidget - Issues

Hi, On execution (no compile error) I get on the console

QWidget::setLayout: Attempting to set QLayout "" on CGSearchResult "", which already has a layout

I am using the following code. Please help me.. THanks is advance

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


}
From stackoverflow
  • http://doc.trolltech.com/4.6/qwidget.html#setLayout

    If there already is a layout manager installed on this widget, QWidget won't let you install another. You must first delete the existing layout manager (returned by layout()) before you can call setLayout() with the new layout.

    Girija : How to find the layout manger already installed or not? Could you please tell me?
    Girija : Thanks Ronny... I got it.. I used qDeleteAll(myQWidget->children());
    Ronny : I think testing whether layout() != 0 suffices

0 comments:

Post a Comment