QLabel wird nicht richtig angezeigt

Alles rund um die Programmierung mit Qt
Antworten
Nvidia
Beiträge: 238
Registriert: 22. Februar 2010 21:23

QLabel wird nicht richtig angezeigt

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



}

archer
Beiträge: 306
Registriert: 2. Februar 2006 09:56

Beitrag 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).
Nvidia
Beiträge: 238
Registriert: 22. Februar 2010 21:23

Beitrag von Nvidia »

ok habs hinbekommen, musst enoch ein Qt::AlignLeft einfügen dann gings
Antworten