QT:как получить доступ с функции в mainwindow.cpp к переменим в main.cpp
Собственно вопрос в заголовке. Есть функция, которая исполняется при нажатии на кнопку. Как получить доступ к переменим которые в main.cpp?
Ответы (1 шт):
Автор решения: Sergey Tatarincev
→ Ссылка
Первый вопрос - а оно вам точно надо?
и ответ на вопрос - напрямую никак, но вы можете передать параметры из main.cpp при инициализации MainWindow. Вот маленький пример: main.cpp
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QString param = QString(argv[0]); // пусть и бессмысленно, но будем передавать имя запускаемой программы.
MainWindow w(param); // Инициализация (создание) MainWindow (см. конструктор MainWindow)
w.show();
return a.exec();
}
MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QMessageBox>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QString p, QWidget *parent = 0); // в нонструкторе добавился доп. параметр
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
MainWindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QString p, QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QMessageBox::information(this,"",p); // в реализации конструктора мы получили переменную из main.cpp и можем использовать на свое усмотрение
this->show();
}
MainWindow::~MainWindow()
{
delete ui;
}