Seite 1 von 1
Panel überlagert Label nicht
Verfasst: 2. November 2010 22:30
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
Verfasst: 3. November 2010 06:31
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!
Verfasst: 3. November 2010 07:36
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...
Re: Panel überlagert Label nicht
Verfasst: 3. November 2010 10:52
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();
}