In general, I did as in the example on the site https://evileg.com/ru/post/112/ .
But jumps two errors (S2248, C2664).
Qt 4.8
Here is the code for form.h:
#ifndef FORM_H #define FORM_H #include <QWidget> namespace Ui { class Form; } class Form : public QWidget { Q_OBJECT public: explicit Form(QWidget *parent = 0); ~Form(); signals: void firstWindow(); // Π‘ΠΈΠ³Π½Π°Π» Π΄Π»Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Π½Π° ΠΎΡΠΊΡΡΡΠΈΠ΅ private slots: void on_pushButton_clicked(); private: Ui::Form *ui; }; #endif // FORM_H mainwindow.h
#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> #include <form.h> namespace Ui { class MainWindow; } class MainWindow : public QMainWindow { Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private slots: void on_pushButton_clicked(); private: Ui::MainWindow *ui; Form *sWindow; }; #endif // MAINWINDOW_H form.cpp
#include "form.h" #include "ui_form.h" Form::Form(QWidget *parent) : QWidget(parent), ui(new Ui::Form) { ui->setupUi(this); } Form::~Form() { delete ui; } void Form::on_pushButton_clicked() { this->close(); // ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΠΊΠ½ΠΎ emit firstWindow(); // Π Π²ΡΠ·ΡΠ²Π°Π΅ΠΌ ΡΠΈΠ³Π½Π°Π» Π½Π° ΠΎΡΠΊΡΡΡΠΈΠ΅ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° } main.cpp
#include "mainwindow.h" #include <QApplication> int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } mainwindow.cpp
#include "mainwindow.h" #include "ui_mainwindow.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); sWindow = new Form(); // ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ°Π΅ΠΌ ΠΊ ΡΠ»ΠΎΡΡ Π·Π°ΠΏΡΡΠΊΠ° Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²ΠΎ Π²ΡΠΎΡΠΎΠΌ ΠΎΠΊΠ½Π΅ connect(sWindow, &Form::firstWindow, this, &MainWindow::show); } MainWindow::~MainWindow() { delete ui; } void MainWindow::on_pushButton_clicked() { sWindow->show(); // ΠΠΎΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Π²ΡΠΎΡΠΎΠ΅ ΠΎΠΊΠ½ΠΎ this->close(); // ΠΠ°ΠΊΡΡΠ²Π°Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ } But the result
F:\WORK\DIMA\qwestion38\mainwindow.cpp:12: ΠΎΡΠΈΠ±ΠΊΠ°: C2248: Form::firstWindow: Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ protected ΡΠ»Π΅Π½, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠΌΡ Π² ΠΊΠ»Π°ΡΡΠ΅ "Form" F:\WORK\DIMA\qwestion38\form.h(18): ΡΠΌ. ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ "Form::firstWindow" F:\WORK\DIMA\qwestion38\form.h(10): ΡΠΌ. ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ "Form" F:\WORK\DIMA\qwestion38\mainwindow.cpp:12: ΠΎΡΠΈΠ±ΠΊΠ°: C2664: bool QObject::connect(const QObject *,const char *,const QObject *,const char *,Qt::ConnectionType): Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ 2 ΠΈΠ· "void (__thiscall Form::* )(void)" Π² "const char *" ΠΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΠΊΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ