Seite 1 von 1

Problem mit zwei .ui Dateien

Verfasst: 4. Januar 2016 21:27
von jollepe
//Edit:

Fehler gefunden. Quellcode passt jetzt.

Hallo,

ich möchte aus meinem Hauptprogramm ein neues Fenster öffnen. Dazu habe ich mich schon ein bisschen eingelesen und folgenden Quelltext erzeugt:

main.cpp:

Code: Alles auswählen

#include "mainwindow.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}

mainwindow.cpp:

Code: Alles auswählen

#include "mainwindow.h"
#include "ui_mainwindow.h"


MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}

void MainWindow::on_pushButton_clicked()
{
    openAbout();
}

void MainWindow::openAbout()
{
    windowAbout = new About();
       windowAbout->show();
}
mainwindow.h:

Code: Alles auswählen

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "about.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

public slots:
    void openAbout();

private:
    Ui::MainWindow *ui;
    About *windowAbout;
};

#endif // MAINWINDOW_H
about.cpp:

Code: Alles auswählen

#include "about.h"
#include "ui_about.h"

About::About(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::About)
{
    ui->setupUi(this);
}

About::~About()
{
    delete ui;
}
about.h:

Code: Alles auswählen

#ifndef ABOUT_H
#define ABOUT_H

#include <QMainWindow>

namespace Ui {
class About;
}

class About : public QMainWindow
{
    Q_OBJECT

public:
    explicit About(QWidget *parent = 0);
    ~About();

private:
    Ui::About *ui;
};

#endif // ABOUT_H
Weiterhin habe ich natürlich noch eine about.ui und eine mainwindow.ui.

Wenn ich das ganze jetzt kompilieren möchte, erhalte ich folgende Fehlermeldung:

Code: Alles auswählen

mainwindow.cpp:24: Fehler: 'windowAbout' was not declared in this scope
     windowAbout = new About();
     ^
Weiß grade echt nicht weiter. Im Prinzip möchte ich nur aus dem Hauptfenster, nachdem ich auf ein Button geklickt habe, ein zweites Fenster mit entsprechender .ui öffnen.

Danke und Gruß
Julian

Re: Problem mit zwei .ui Dateien

Verfasst: 5. Januar 2016 07:24
von Christian81
Dem About-Fenster solltest Du zumindest noch den this-Pointer des MainWindow als Parent übergeben oder korrekt wieder löschen - sonst gibt es memory-leaks.