Seite 1 von 1

Wo kommt mein Code rein?

Verfasst: 14. November 2010 22:13
von crossfader
Hi!

Ich bin noch blutiger Anfänger in Qt.. das Buch von Jürgen Wolff habe ich durch.. da ich meine Klassen aber nicht immer selber schreiben will und die Formen per Code designen will, mache ich mir immer schön ein GUI Projekt, mache die Formen im Designer fertig. Nun stellt sich für mich die Frage, ob ich meinen Code, der beim Start des Programms (bzw. im Konstrukter der MainWindow-Klasse) aufgerufen soll, richtig platziert habe.. Hier durch einen Kommentar ersetzt:

Code: Alles auswählen

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

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

//Hier habe ich meinen Code drin

}

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

Es funktioniert.. ist es auch richtig? Wo soll ich es sonst hinpacken? Ich will meine main.cpp ja nicht so voll haben :(

Vielen Dank schon einmal für die Hilfe :)

Gruß,
Olli

Verfasst: 15. November 2010 06:08
von DBGTMaster
ist schon korrekt so, in der main.cpp wirst auch nicht viel erfolg haben

Verfasst: 15. November 2010 14:44
von crossfader
Ich danke dir. Dann kann ich ja beruhigt weitertippen *grins*

Gruß,
Olli

Verfasst: 15. November 2010 18:37
von androphinx
Ich bin gerade etwas zu dumm, den richtigen Eintrag in der Dokumentation tu finden, aber ist es nicht so, dass das Fenster nicht gezeigt wird, solange der Konstruktor noch im Aufruf ist? Oder wird es mit ui->setupUi(this) schon angezeigt?

Also für kleinere Routinen ist das sicherlich uninteressant, aber wenn man z. B. Content aus dem Netz zieht, dann kann es ja schon mal zu gewissen Wartezeiten kommen...

Mfg androphinx

Verfasst: 15. November 2010 18:40
von crossfader
Wenn ich eine einfache MessageBox öffne (im Konstrukter), dann wird erst nach dem Klick auf OK die Form angezeigt. Du wirst also Recht haben.

Wenn ich eine neue Methode zur MainWindow hinzufüge, und die im Konstruikter aufrufe, macht das ja keinen Unterschied. Wo also dann.. wenn nicht im Konstrukter?
Oder bei Aufruf der MainWindow ein Signal auslösen, welches dann eine Funktion ausführt.. aber auch nicht sehr Elegant. Wo schreibst du deinen "Konstrukter-Code" immer rein?

Gruß,
Olli