Dialog mit pushButton öffnen

Alles rund um die Programmierung mit Qt
Antworten
stargazer
Beiträge: 13
Registriert: 22. April 2006 21:12

Dialog mit pushButton öffnen

Beitrag von stargazer »

Hallo zusammen! Ich bin QT Neuling und habe ein Problem. Ich habe jetzt auch schon den ganzen Nachmittag mit der Lösungssuche in verschiedenen Foren gesucht, doch leider ohne Erfolg.

Ich möchte mit einem pushButton einen anderen Dialog öffnen.
Dazu habe ich eine eine Klasse von QMainWindow abgeleitet, bzw, hat das der Designer gemacht ;).

#ifndef TEST_H
#define TEST_H

#include <QtGui/QMainWindow>
#include "ui_test.h"


class test : public QMainWindow
{
Q_OBJECT

public:
test(QWidget *parent = 0, Qt::WFlags flags = 0);
~test();

private:
Ui::testClass ui;

private slots:
void openLogin();
};

Ich hab dann einen private slot deklariert mit dem ich den neuen Dialog öffnen wollte, den der Designer von QDialog abgeleitet hat.
Die Implementierung sieht dann so aus:

#include "test.h"

test::test(QWidget *parent, Qt::WFlags flags)
: QMainWindow(parent, flags)
{
ui.setupUi(this);
connect(ui.pushButton, SIGNAL(clicked()), this, SLOT(openLogin()) );
}

test::~test()
{

}

//das habe ich von hier: http://www.qtcentre.org/forum/faq.php?f ... ner_2forms
void test::openLogin()
{
Login login(this);
login.exec();
}

Leider kennt er Login nicht und der Compiler wirft folgende Fehlermeldung raus:

.\test.cpp(17) : error C2065: 'Login': nichtdeklarierter Bezeichner

Das ändert sich auch nicht, wenn ich die die login.h include in der die von QDialog abgeleitete Klasse Login deklariert ist.

Wie kann ich diese beiden Klassen denn miteinander verküpfen bzw. die Dialogklasse modal aufrufen?
Meine main.cpp sieht so aus:

#include <QtGui/QApplication>
#include "test.h"

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
test w;
w.show();
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
return a.exec();
}

Schon mal vielen Dank für eure Hilfe, denn ich komme hier einfach nicht weiter.
stargazer
Beiträge: 13
Registriert: 22. April 2006 21:12

Beitrag von stargazer »

Hat sich erledigt.
stargazer
Beiträge: 13
Registriert: 22. April 2006 21:12

Beitrag von stargazer »

Also weil ich jetzt gefragt wurde, wie es denn nun funktioniert hat. Ich hatte beim include wohl doch nur einen kleinen Fehler.
Wenn man in der Implementierungsdatei test.cpp die login.h included funktioniert es wunderbar.
Antworten