Problem mit zwei .ui Dateien

Alles rund um die Programmierung mit Qt
Antworten
jollepe
Beiträge: 1
Registriert: 13. November 2014 21:45

Problem mit zwei .ui Dateien

Beitrag 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
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: Problem mit zwei .ui Dateien

Beitrag 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.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Antworten