Seite 1 von 1

QLabel wird nicht richtig angezeigt

Verfasst: 14. Juli 2010 15:56
von Nvidia
Ich hab ein subclass von QLabel erstellt, deren Konstruktor nur ein StyleSheet mit Background grey enthält.
Diesen ruf ich dann in einer anderen Klasse(MainWindow) auf.
und vergrößere es auf 500,500.
Dannach füge ich es mit anderen Widgets in ein H und B-Layouts und gebe dem CentralWidget das layout.
Alle Objekte werden richtig angezeigt. Nur das Label ist nicht 500,500 sondern sehr sehr sehr schmal. so etwa 5,500.
Woher kommt das? Wie geht das weg?
nvidia

Code: Alles auswählen

//Label konstruktor
#include "field.h"

field::field(QWidget *parent)
{
    setStyleSheet(" QLabel { background: grey }");
}
//MainWin
#include "Add.h"
#include <QtGui>
#include <QToolBar>

MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
    createMenu();
    createSearch();
    createTree();

    central = new QWidget();
    setCentralWidget(central);

    line = new QLabel();
    show = new field();
    show->resize(500,500);



    QHBoxLayout *layout2 = new QHBoxLayout;
    layout2->addWidget(tool);
    layout2->addWidget(keysearch);
    layout2->setAlignment(Qt::AlignTop);

    QVBoxLayout *layout3 = new QVBoxLayout;
    layout3->addWidget(line);
    layout3->addWidget(show);

    QHBoxLayout *layout4 = new QHBoxLayout;
    layout4->addWidget(datatree);
    layout4->addLayout(layout3);

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addLayout(layout2);
    layout->addLayout(layout4);

    central->setLayout(layout);

    //Test!!!
    datatree->setMaximumWidth(200);



}


Verfasst: 14. Juli 2010 16:31
von archer
Die größe das Labels richtet sich nach dem Layout.
Der Layoutmanager gibt die Größe vor, wenn du das Label in ein Layout tust.

Wenn das Labelwirklich immer 500x500 groß sein solltest du setFixedSize(500,500) verwenden oder setMinimumSize(500, 500).

Verfasst: 14. Juli 2010 16:52
von Nvidia
ok habs hinbekommen, musst enoch ein Qt::AlignLeft einfügen dann gings