Чтобы получить указатель на объект из другого класса, вам нужно реализовать публичную функцию, которая возвращает этот указатель. Я приведу небольшой пример:
Ваш класс MainWindow
в заголовочном файле будет содержать функцию progressbar()
.
mainwindow.h
//...
class MainWindow : public QMainWindow
{
Q_ObBJECT
public:
QProgressBar *progressbar(); //returns a pointer to the QProgressBar
//..
private:
//..
};
Эта функция реализована в mainwindow.cpp
следующим образом:
QProgressBar *MainWindow::progressbar()
{
return ui->progbar; //I just called it like this to avoid confusion, it's the just the name you defined using QtDesigner
}
Затем, в demo.hpp
, если у вас есть экземпляр MainWindow
в вашем классе:
//..
class Demo : public QObject
{
Q_OBJECT
public:
//..
private:
MainWindow *window;
//..
}
Вы можете просто получить доступ к QProgressBar
, используя вызов функции demo.cpp
:
QProgressBar *bar;
bar = window->progressbar();
Я должен сказать, что необычно иметь экземпляр MainWindow
в другом классе. Обычно ваши QMainWindow
или QApplication
являются основной точкой входа в программу, и у вас есть экземпляры других классов, а не наоборот.