#include <QtGui/QApplication>#include "mainwindow.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); w.show(); // объявление MainWindow w; вынес в mainwindow.h return a.exec();}
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui { class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); int i; // переменная к которой хочу получить доступprivate: Ui::MainWindow *ui;}; MainWindow w; // объявляю экземпляр класса mainWindow#endif // MAINWINDOW_H
#ifndef FORM_H#define FORM_H#include <QWidget>#include "mainwindow.h" // хочу видеть класс MainWindow и его экземпляр w, который создается в main.cppnamespace Ui { class Form;}class Form : public QWidget{ Q_OBJECTpublic: explicit Form(QWidget *parent = 0); ~Form();private: Ui::Form *ui;};#endif // FORM_H
#include "form.h"#include "ui_form.h"Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form){ ui->setupUi(this); w.i = 123; // при создании формы Form хочу чтобы изменялась переменная i объекта w главного окна }Form::~Form(){ delete ui;}
#include <QtGui/QApplication>#include "mainwindow.h"int main(int argc, char *argv[]){ QApplication a(argc, argv); w.show(); return a.exec();}
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include <QMainWindow>namespace Ui { class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); int i;private: Ui::MainWindow *ui;};MainWindow w;#endif // MAINWINDOW_H
#include "mainwindow.h"#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this);}MainWindow::~MainWindow(){ delete ui;}
#ifndef FORM_H#define FORM_H#include <QWidget>#include "mainwindow.h"extern MainWindow w;namespace Ui { class Form;}class Form : public QWidget{ Q_OBJECTpublic: explicit Form(QWidget *parent = 0); ~Form();private: Ui::Form *ui;};#endif // FORM_H
#include "form.h"#include "ui_form.h"MainWindow w;Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form){ ui->setupUi(this);}Form::~Form(){ delete ui;}
w = new MainWindow();w->show();
QWidget: Must construct a QApplication before a QPaintDeviceПрограмма неожиданно завершилась.