Wie kann ich den Widget-Typ in einer Qtable-Zelle bestimmen?

8

Ich habe eine Qtable mit vielen GUI-Elementen wie Combo-Boxen und Checkboxen in verschiedenen Cels erstellt. Ich kann auf diese Elemente zugreifen, indem ich Zeiger auf sie lege. Was ich wissen möchte ist, gibt es eine Möglichkeit zu wissen, welche Art von Widget (Combo-Box oder Checkbox) eine Zelle hat?

    
rwik 01.06.2011, 18:18
quelle

4 Antworten

10

Lesen Sie die Antworten zu diese Frage . Die akzeptierte Antwort erhält den Klassennamen (als const char *) aus dem Metaobjekt des Widgets :

%Vor%

Es gibt eine andere Antwort, die vorschlägt, die C ++ - Typverwaltung zu verwenden, aber das klingt viel weniger handlich (unhandlicher?).

Hoffe, das hilft!

    
Xavier Holt 01.06.2011, 18:33
quelle
5

Ich würde vorschlagen, qobject_cast Ссылка

zu verwenden

Es funktioniert wie dynamic_cast , ist aber etwas besser, da es einige Qt-spezifische Annahmen treffen kann (hängt nicht von RTTI ab).

Sie können es wie folgt verwenden:

%Vor%     
Evan Teran 01.06.2011 18:51
quelle
1

Sie können folgende Dienstprogrammfunktionen schreiben:

%Vor%

Oder vielleicht können Sie typeid verwenden, um den Laufzeit -Typ des Objekts in der Zelle zu bestimmen.

BEARBEITEN:

Wie @Evan im Kommentar bemerkt hat, können Sie auch qobject_cast verwenden, um das Objekt zu erstellen , anstatt dynamic_cast . Siehe Beispiele hier .

    
Nawaz 01.06.2011 18:24
quelle
0

Sie können QObject::className() verwenden, um den Typ des Widgets zu erhalten.

    
BЈовић 01.06.2011 18:36
quelle

Tags und Links