2016-07-20 6 views
1

Ich habe eine QVBoxLayout durch den Drag & Drop-Bereich erstellt. Inside davon AT RUN TIME Ich füge einige Widgets mit dem BefehlWie durch alle Widget in einem QVBoxLayout Zyklus

ui-> verticalLayout-> insertWidget() // mit entsprechenden Optionen.

Alle Widgets, die ich einfüge, sind vom selben Typ/Klasse.

Ich möchte die eingefügten Widgets durchlaufen, um einige Aktionen über sie auszuführen.

Ich nehme an, es ist wirklich einfach, aber kann nicht scheinen, wie ...

, um herauszufinden,

danke euch allen!

Antwort

1

Sie können QLayout::itemAt() verwenden, um die Elemente des Layouts zu durchlaufen. Dann QLayoutItem::widget() verwenden Sie das Widget zu bekommen:

for(int i = 0; i < layout->count(); ++i) 
{ 
    do_something(
     layout->itemAt(i)->widget() 
    ); 
} 

Beachten Sie, dass widget() einen Null-Zeiger zurückgeben kann.

+1

Ich weiß, ich kann viel fragen, aber könnten Sie mir bitte einen Beispielcode zeigen? – Wing

+0

Es sollte so etwas sein: für (int i = 0; ich < layout-> count(); ++ i) do_something (layout-> itemAt (i) -> widget()); Achten Sie darauf, dass die Methode widget() einen Nullzeiger zurückgibt. – wasthishelpful

+0

Vielen Dank! Sie waren wirklich hilfreich! – Wing