Seite 1 von 1

Probleme mit der Ausgabe

Verfasst: 6. Dezember 2006 20:55
von soulsofpetro
Hallo Leute,

ich habe folgendes Problem:
Ich will in meinem MainWindow ein QGridLayout indem sich Widgets befinden erstellen.
So sieht das ganze aus:

MainWindow::MainWindow(QWidget *parent)
:QWidget(parent)
{

QGridLayout *gridLayout = new QGridLayout;
for(int i = 0 ; i < 3; ++i)
for(int j = 0 ; j < 3 ; ++j)
{
QColor color(249, 228, 147);
QWidget *widget = new Character(color, "a", false);
gridLayout->addWidget(widget, i, j);
}

setLayout(gridLayout);

}

in der main sieht es dann so aus:

int main(int argc, char *argv[]) {
QApplication app(argc, argv);

MainWindow window;
window.show();

return app.exec();
}

Wenn ich das ganze nun starte, kommen blitzen nacheinander alle Widgets auf (so kommt es mir jedenfalls vor) und verschwinden wieder.
kann mir jemand sagen was ich hier falsch mache?
Danke im Voraus.

Verfasst: 7. Dezember 2006 12:35
von soulsofpetro
hat denn niemand einen tip?
sollte ich das gridlayout in ein extra widget setzen?
denn eigentlich ist ja mein mainwindow schon ein qwidget.

Verfasst: 7. Dezember 2006 13:28
von dontinelli
In der Doku fügensie das QGridLayout in eine GroupBox. Warum solltest du es anders machen???

Code: Alles auswählen

void Dialog::createGridGroupBox()
 {
     gridGroupBox = new QGroupBox(tr("Grid layout"));
     QGridLayout *layout = new QGridLayout;

     for (int i = 0; i < NumGridRows; ++i) {
         labels[i] = new QLabel(tr("Line %1:").arg(i + 1));
         lineEdits[i] = new QLineEdit;
         layout->addWidget(labels[i], i + 1, 0);
         layout->addWidget(lineEdits[i], i + 1, 1);
     }

     smallEditor = new QTextEdit;
     smallEditor->setPlainText(tr("This widget takes up about two thirds of the "
                                  "grid layout."));
     layout->addWidget(smallEditor, 0, 2, 4, 1);

     layout->setColumnStretch(1, 10);
     layout->setColumnStretch(2, 20);
     gridGroupBox->setLayout(layout);
 }
Cheers
Don Tinelli