Получить доступ к родительским переменным из дочернего класса в qt
У меня есть два класса в Qt. В одном я объявил несколько переменных и дочерний класс QFrame с QPainter. Теперь, если это возможно, как я могу получить доступ к родительским переменным из дочернего класса? Я знаю, что могу передавать переменные по сигналам и слотам или перехватывать дочерние события QPainter, но я думаю, что было бы неплохо получить доступ напрямую.
2 ответа
Не совсем. Простой пример:
родительский заголовок
class gameWindow : public QWidget
{
Q_OBJECT
public:
gameWindow(QWidget *parent = 0);
int round;
};
родительский класс
#include "gamewindow.h"
gameWindow::gameWindow(QWidget *parent) :
QWidget(parent)
{
round = 0;
}
заголовок дочерний:
class plArea:public QWidget
{
Q_OBJECT
public:
plArea(QWidget *parent=0);
};
класс ребенка:
#include "plarea.h"
plArea::plArea(QWidget *parent):QWidget (parent)
{
parent->round = 1;
}
вернуть
У класса QWidget нет члена с именем round
Это сводится к видимости данных в базовом классе. Если данные общедоступны или защищены, у вас есть доступ к ним. В противном случае данные являются частными, и у вас нет прямого доступа к ним.