QGridLayout (QT4.2)

Alles rund um die Programmierung mit Qt
Antworten
killerjoe
Beiträge: 27
Registriert: 23. Januar 2005 00:17

QGridLayout (QT4.2)

Beitrag von killerjoe »

Hallo,

ich habe mir ein von QMainWindow abgeleitetes Widget erstellt und da verschiedene Dinge mit hilfe eines QGridLayouts positioniert. Nur sind bei mir alle Elemnte oben links in der ecke, ganz egal wie ich den Code unten änder. Ist da ein ganz grober Fehler drin? Finden da einfach keine logik wieso das falsch ist.

Code: Alles auswählen

MeinMainWidget::MeinMainWidget(QWidget *parent, Qt::WindowFlags flags)
    : QMainWindow(parent, flags)
{
    this->resize(QSize(676, 466).expandedTo(this->minimumSizeHint()));

    gridLayout = new QGridLayout(this);
    gridLayout->setSpacing(6);
    gridLayout->setMargin(11);
    gridLayout->setObjectName(QString::fromUtf8("gridLayout"));

    textBrowser = new QTextBrowser(this);
    textBrowser->setObjectName(QString::fromUtf8("textBrowser"));
    gridLayout->addWidget(textBrowser, 2, 0, 1, 4);

    lineEdit1 = new QLineEdit(this);
    lineEdit1->setObjectName(QString::fromUtf8("lineEdit1"));
    gridLayout->addWidget(lineEdit1, 1, 0, 1, 3);

    btn_x = new QPushButton(this);
    btn_x->setObjectName(QString::fromUtf8("btn_x"));
    btn_x->setMinimumSize(QSize(0, 27));
    gridLayout->addWidget(btn_x, 1, 3, 1, 1);

    btn_uber = new QPushButton(this);
    btn_uber->setObjectName(QString::fromUtf8("btn_uber"));
    QSizePolicy sizePolicy(static_cast<QSizePolicy::Policy>(0), static_cast<QSizePolicy::Policy>(0));
    sizePolicy.setHorizontalStretch(0);
    sizePolicy.setVerticalStretch(0);
    sizePolicy.setHeightForWidth(btn_uber->sizePolicy().hasHeightForWidth());
    btn_uber->setSizePolicy(sizePolicy);
    gridLayout->addWidget(btn_uber, 0, 3, 1, 1);
    setLayout(gridLayout);
}

vielleicht kann mir ja hier jemand einen Tip geben!

Thx!
Markus
killerjoe
Beiträge: 27
Registriert: 23. Januar 2005 00:17

Beitrag von killerjoe »

Nur um das ganze mal eben aufzulösen:

Ein QMainWindow kann kein Layout bekommen. Man kann es aber mit:

Code: Alles auswählen

    QWidget *center;
    center = new QWidget(this);
    setCentralWidget(center);
trotzdem so hinbekommen wie man will, man gibt dann einfach center das Layout!

Markus
Antworten