2010-11-16 5 views
0

J'ai deux classes en Qt. Dans un j'ai déclaré certaines variables et la classe QFrame enfant avec QPainter. Maintenant, si c'est possible, comment puis-je avoir accès aux variables parents de la classe enfant? Je sais que je peux passer des variables par des signaux et des slots ou attraper des événements QPainter enfants, mais je pense que ce serait bien d'avoir accès directement.Accès aux variables parentes de la classe enfant en qt

Répondre

0

Cela se résume à la visibilité des données dans la classe de base. Si les données sont publiques ou protégées, vous y avez accès. Sinon, les données sont privées et vous n'avez pas d'accès direct.

0

Pas exactement. Exemple simple:

parent d'en-tête

class gameWindow : public QWidget 
{ 
    Q_OBJECT 

public: 
    gameWindow(QWidget *parent = 0); 
    int round; 

}; 

tête parent classe

#include "gamewindow.h" 

gameWindow::gameWindow(QWidget *parent) : 
    QWidget(parent) 
{ 
    round = 0; 
} 

enfant:

class plArea:public QWidget 
{ 
    Q_OBJECT 
public: 
    plArea(QWidget *parent=0); 

}; 

enfant classe:

#include "plarea.h" 

plArea::plArea(QWidget *parent):QWidget (parent) 
{ 
    parent->round = 1; 
} 

retour

« QWidget classe » n'a pas nommé membre « rond »

+0

ici vous faire une chose mal ... vous faire la variable « parent » que vous passez à votre classe enfant de type QWidget, où si vous deviez le faire de type gameWindow, il connaitrait de round et y accéderait sans problème – g19fanatic

+0

pouvez-vous me montrer à quoi cela devrait ressembler? j'inclus gamewindow.h à l'en-tête de plArea, ensuite je fais un changement (http://pastebin.com/hTJ4qiKw) et j'obtiens errror attendu ')' avant le jeton '*' dans la ligne plArea (gameWindow * parent = 0); – sebastian

Questions connexes