Panel überlagert Label nicht

Alles rund um die Programmierung mit Qt
Antworten
paule22
Beiträge: 18
Registriert: 1. August 2010 21:25

Panel überlagert Label nicht

Beitrag von paule22 »

Hallo,

ich habe ein Fenster.
Auf dieses erstellen ich (verschachtelt) 2 QScrollArea's.
Das klappt wunderbar.
Ich kann auch text in den 2 scrollareas ausgeben.
was nicht klappt ist,
wenn ich zuerst die beiden scrollareas erstelle und danach das label, dann wird das Textlabel über beide scrollareas gezeichnet.
obwohl die parent eigenschaften alle stimmen.

wie kann ich neu zeichen, also von hinten nach vorne?
oider habt ihr andere ideen oder vorschläge?

gruß
jens
Dateianhänge
scr.jpg
scr.jpg (170.84 KiB) 1996 mal betrachtet
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Könnte man bitte aufhören sinnlose Bilder zu posten??? Wenn es schon sein muss dann nur die relavanten Fenster und dann auch klein genug dass es nicht alles sprengt!
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
franzf
Beiträge: 3114
Registriert: 31. Mai 2006 11:15

Beitrag von franzf »

Und vor allem relevanten Code posten. Der Screenshot zeigt zwar Code, aber der hat absolut nichts mit Qt zu tun...
Und eine GUTE (!) Erklärung, sollte auch noch her, was du dir am Ende vorstellst. Ich würde als erstes sagen "verwende Layouts!" - aber ohne Infos kann man nicht sagen wo und wie - und überhaupt ob...
padreigh
Beiträge: 340
Registriert: 13. Mai 2010 10:06

Re: Panel überlagert Label nicht

Beitrag von padreigh »

paule22 hat geschrieben:<snipp>obwohl die parent eigenschaften alle stimmen<snapp>
Dir ist aber schon klar das das parent'ing NIX mit dem Layout zu tun hat? Wenn nicht, schau dir die Beispiele an und lies API.

So könnts gehen:

Code: Alles auswählen

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);
    // mach ne neue ScrollArea
    QScrollArea  s1 = QScrollArea; // aufm stack, damits nacher alles abräumt
    {
         QVBoxLayout *vbl1 = new QVBoxLayout(&s1); // das macht automatisch s1->setLayout wenn du einem Layout ein Widget als parent gibst
        vbl1->addWidget(new QLabel("Label1")); // mach dan label rein
 
        QScrollArea  * s2 = new QScrollArea; // neue scrollarea hier mal ohne parent
        {
            QVBoxLayout *vbl2 = new QVBoxLayout(s2); // layout für dieses scrollarea
            vbl2->addWidget(new QLabel("Label2")); // pack da auch n label rein
        }
        vbl1->addWidget(s2); // pack scrollarea2 in layout von scrollarea1 - s2 wir autmatisch umgeparented (urrrks)  ... es wird geschaut zu welchem Widget das Layout gehört und das Widget wird neuer parent des ge-addeten Dingses
  }
    s1.show(); // zeigs an
    return app.exec();
}
Patrick (QtCreator 1.3.1, Qt 4.6.3)
---
template = subdirs
Antworten