9
votes

Sur l'utilisation d'une classe sans papiers dans QT

est-il sans danger d'utiliser la classe qObjecttuserdata classe et le qObject :: setunerdata dans qt?


1 commentaires

Il semble que ce soit un reste de Qt 4.2? Je conseillerais d'utiliser une version plus récente de QT, comme 4.7. Qu'est-ce que c'est exactement que tu veux faire avec ça?


3 Réponses :


9
votes

En général, vous ne devriez pas compter sur des API sans papiers. Si vous envisagez jamais de mettre à niveau Qt, ne l'utilisez pas!


0 commentaires

4
votes

Les classes sans papiers sont généralement des classes internes et ne font pas partie de l'API QT. Cela signifie, aucune garantie n'est indiquée que l'API ne changera pas ou que la classe est complètement supprimée dans la prochaine version QT. Par exemple, qobject_p.h contient l'avertissement suivant:

//  W A R N I N G
//  -------------
//
// This file is not part of the Qt API.  It exists for the convenience
// of qapplication_*.cpp, qwidget*.cpp and qfiledialog.cpp.  This header
// file may change from version to version without notice, or even be removed.
//
// We mean it.


0 commentaires

16
votes

à la place, vous pouvez regarder en utilisant QOBJECT :: SETPROPERTY , cela vous permet de définir non seulement les propriétés déclarées de l'heure, mais également des propriétés dynamiques qui n'ont pas besoin d'être déclarées avant utilisation. Cela vous permet d'attacher des valeurs arbitraires à QObjects au moment de l'exécution, similaires aux données utilisateur.


0 commentaires