ich arbeite nun schon seit längerem mit C++ (knapp 1,5 Jahre) und dachte mir, ich könnte mal "was anderes" machen als immer diese blöden Konsolenprogramme.
Gesagt - Getan. Also machte ich mich auf die Suche nach einem guten Qt-Buch.
Nach Sage und Schreibe 2 Tagen hatte ich dann endlich Qt so installiert und an meine Dev-Cpp IDE angepasst, dass ich auf Knopfdruck ein neues Qt-Script erstellen konnte
Nun versuchte ich mich an dem berühmten "Hallo Welt" - Programm mit Qt.
Bisher lief eigentlich auch alles ganz gut, jedoch blieb ich bei den SIGNALS und SLOTS dann leider hängen, und zwar mit folgendem Problem:
Frage 1:
Für was genau benutze ich dieses "qApp" denn genau?
Angenommen, ich habe ein Fenster mit einem Button. Wenn nun auf diesen Button geklickt wird, so soll sich dieses Fenster schließen.
Wieso funktioniert dann folgender Code nicht:
Code: Alles auswählen
#include <QApplication>
#include <QPushButton>
class MyWidget : public QWidget
{
Q_OBJECT
private:
QPushButton *Button;
public:
MyWidget();
~MyWidget();
};
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
Button = new QPushButton("Beenden");
setWindowTitle("Zweites Fenster");
connect( button, SIGNAL( clicked() ), Window_Main, SLOT( close() ));
}
MyWidget::~MyWidget()
{
}
int main(int argc, char *argv[])
{
QApplication Window_Main(argc, argv);
MyWidget Window_Child = new MyWidget(Window_Main);
return Fenster.exec();
}Bei den SIGNALS/SLOTS habe ich dann das selbe Problem mit dem Parent-Window:
Code: Alles auswählen
#include <QApplication>
#include <QPushButton>
class MyWidget : public QWidget
{
private:
QPushButton *Button;
public:
MyWidget();
~MyWidget();
};
MyWidget::MyWidget(QWidget *parent) : QWidget(parent)
{
Button = new QPushButton("Beenden");
setWindowTitle("Zweites Fenster");
}
MyWidget::~MyWidget()
{
}
int main(int argc, char *argv[])
{
QApplication Window_Main(argc, argv);
MyWidget Window_Child = new MyWidget(Window_Main);
return Fenster.exec();
}Und warum brauche ich für die SIGNALS / SLOTS überhaupt die Angabe des Elternfensters? Ohne diese bräuchte ich ja den Basisinitialisierer für QWidget in Zeile 14 gar nicht...
Ich hoffe ihr könnt mir bei diesem Problem ein wenig weiterhelfen, denn ich verzweifle sonst bald.. Wenn ich das erst mal richtig verstanden habe, bin ich wohl übern Berg
Viele Grüße
Gapa