Согласен, так вопрос в не том:
Есть компонент QLabel. Принадлежность: Класс 1. Имя: label.
Во втором классе, пытаясь изменить свойство text компонента QLabel,
пишу: ui->label->setText("12345"); Так как ui -это указатель доступа 1-го класса, то система логично выдаёт:
'ui' undeclared
Если написать: label->setText("12345"); - система выдаёт:
'label' undeclared. Логично: компонент приналежит классу 1, а класс 2-а, из которого вызывается компонент этого компонента не знает.
Делаю так:
class2.h
class MyWidget; // Класс 1
namespace Ui {
class Form2;
class MyWidget; // Класс 1
}
class Form2 : public QWidget {
Q_OBJECT
public:
Form2(QWidget *parent = 0);
~Form2();
Ui::MyWidget *uiX; // Указатель на класс 1, для видимости из класса 2.
Пишу так
uiX->label->setText("12345"); -в данном случае от uiX->идёт подсказка автовыбора компонентов - т.е. label класса 1 - доступен для выбора, а
для label соответственно доступен метод setText(...). При этом пример компилируется, но при выполнении пример выдаёт ошибку с длинным номером и закрывается.
Если обеспечивается видимость в редакторе, что тогда неверно? Почему пример выдаёт ошибку?