Всем доброго времени суток. Похожая тема уже звучала, но я так и не нашел в ней ответа на главный вопрос. Ситуация такая: подключил библиотеку QCustomPlot через элемент QWidget, создал отдельный класс-наследник от QCustomPlot, соответственно. Теперь я хочу реализовать всю работу с этой библиотекой в этом классе, оставив в MainWindow только создание элемента объекта этого класса и один метод, который будет только отправлять массив данных в этот объект. Усё. Тут у меня начинается головоломка:
-нужно обращаться к элементу в форме через ui->, которого нет в моем классе, он там не наследован и по ссылке не передан, и никто его там не видел, и никто там его не узнает) как это сделать понятия не имею. Пробовал: множественное наследование и создание там отдельного объекта - не вышло. Не исключено, что в силу моих ошибок. Сделать метод в MainWindow, возвращающий ссылку на объект ui - не вышло, хотя, народ пишет, что это вполне возможно, но нет нигде кода, у кого бы это вышло. Сейчас все работает допотопно: я создаю объект моего класса в MainWindow, и дергаю там методы моего класса. А мне нужно реализовать все там. Возможно, я могу передавать эту ссылку как-то в конструктор при создании объекта, но я не ведаю , как это сделать. Помогите, люди добрые, кто чем может) Код привожу ниже:
Это .cpp моего класса
Charts::Charts(QWidget *parent) : QCustomPlot(parent)
{}
void Charts::setupgraph(QCustomPlot *customPlot)
{
// set dark background gradient:
QLinearGradient gradient(0, 0, 0, 400);
gradient.setColorAt(0, QColor(90, 90, 90));
gradient.setColorAt(0.38, QColor(105, 105, 105));
gradient.setColorAt(1, QColor(70, 70, 70));
customPlot->setBackground(QBrush(gradient));
и т.д.
это его .h
#include <QtCore/QDebug>
#include <qcustomplot.h>
class MainWindow;
class Charts : public QCustomPlot {
Q_OBJECT
signals:
void getData(const QByteArray &data);
public:
explicit Charts(QWidget *parent = nullptr);
protected:
private slots:
public:
void setupgraph(QCustomPlot *customPlot);
private:
QCPGraph *graphic; // Объявляем график
};
В MainWindow все в штатном режиме, как Qt прописал.
private:
Ui::MainWindow *ui;
Заранее благодарен каждому, кто испытает малейшее желание оказать помощь