Вкратце:Access QCustomPlot Переменная
Мне нужно получить доступ к переменной QCustomPlot в WidgetClass. Но я не могу, потому что в этом контексте он является частным. Как это достигается?
То, что я сделал:
У меня есть класс, который создает граф и класс виджета, который вызывает класс графа Моя переменная QCustomPlot является частной переменной, которая объявляется в классе графов, но Мне нужно получить доступ к этой переменной в классе Widget.
У меня есть слот generate_graphs, который получает данные и передает данные в класс графа, и оттуда создается граф. Я сохраняю в png, поэтому мне нужно получить доступ к переменной графа с этими данными, переменная передается в WidgetClass, которая затем вызывает класс графа, который генерирует граф.
Переменный граф класса (в классе виджета) объявляются следующим образом: GraphWidget* graph
Я пытаюсь получить доступ к переменной QCustomPlot в этом слоте, как это: graph->QCustomPlot->savePNG()
я получаю сообщение об ошибке, что говорит QCustomPlot* GraphWidget::QCustomPlot is private within this context
Я тогда создала функцию, чтобы просто вернуть GraphWidget* graph
, чтобы я мог получить доступ к этой переменной в классе графа. Вместо этого я мог получить доступ к переменной QCustomPlot, не будучи приватной в этом контексте. Это вызвало ошибки, поскольку необходимо передать GraphWidget* graph
, который не объявлен в классе GraphWidget.
Поскольку вы являетесь частным, вы можете либо использовать его внутри экземпляра 'graph', либо выставлять его вне экземпляра' graph'. Следуя первому подходу, вы можете определить публичный 'savePng()' внутри вашего 'GraphWidget' и вызвать из этого кода' customPlotInstace-> savePNG() '. Кстати, это 'QCustomPlot' имя экземпляра? Это кажется странным. – BaCaRoZzo
'QCustomPlot' - это тип переменной, переменная' QCustomPlot' объявляется в классе GraphWidget, но я хочу получить к ней доступ в WidgetClass. Я сделал то, что вы предложили, однако данные, которые я хочу сохранить в png, определены в WidgetClass. WidgetClass получает данные для GraphClass, а GraphClass генерирует график, GraphClass не сохраняет данные, я хочу создать png графика, этот график (с данными) находится в WidgetClass, а не в GraphClass. В идеале мне вообще нечего было делать в GraphClass. Имеет ли это смысл? –
Спасибо! @BaCaRoZzo –