Seite 1 von 1

[gelöst] Starthilfe Qt4

Verfasst: 6. April 2006 17:14
von Sphinx
Hallo Forum

Ich versuche gerade, mich in Qt4 einzuarbeiten, und ich bekomme es einfach nicht hin, die Formulare, die ich mit dem Designer erstellt habe, vernünftig zu laden: Ich habe bei Trolltech dieses Tutorial http://doc.trolltech.com/4.0/designer-u ... onent.html gefunden, und haben den Quellcode für die main Methode 1:1 kopiert, einzige Änderung war der Namen des Formulars, weil ich das nicht ImageDialog genannt habe. Die qmake's funktionieren auch, die header werden erstellt, alles Bestens, nur kompilieren lässt sich das ganze nicht.

Die Zeile

ui.setupUi(window);

Produziert folgenden Fehler:

Fehler: keine passende Funktion für Aufruf von »Ui::Gui::setupUi(QDialog*&)«

Wenn ich diese Zeile auskommentiere, lässt sich das Programm compilieren und Starten, allerdings kommt nur ein leeres Fenster. Hat jemand eine Idee, was ich da falsch mache??

Danke
Sphinx

Verfasst: 7. April 2006 07:34
von michams
Wenn ich mich dunkel an meine Qt Anfänge erinnere, hat das bei mir so auch nicht funktioniert. Versuch mal das, was dort auf der Seite unter "The Multiple Inheritance Approach" steht, das ging dann.

Re: Starthilfe Qt4

Verfasst: 7. April 2006 09:10
von Christian81
Sphinx hat geschrieben: Fehler: keine passende Funktion für Aufruf von »Ui::Gui::setupUi(QDialog*&)«
Ich würde sagen Du solltest Dich mal mit Pointern und Referenzen befassen...
setupUI möchte einen Zeiger auf ein QMainWindow(wenn man sich die Definition von setupUI in ui_DeinUIName.h anschaut sieht man das auch) und nicht eine Referenz auf einen Zeiger auf einen QDialog.

Verfasst: 7. April 2006 10:39
von Sphinx
Ja, das sollte ich wohl tun... Ich gebe ja zu, das C++ und Qt Neuland für mich sind, bisher habe ich mit Java gearbeitet: Der Quellcode ist aber direkt aus dem Trollechs Tutorial kopiert, ich hätte nie geglaubt, das ich da viel falsch machen kann... (Einzige änderung: ImageDialog ist durch Gui ersetzt, weil ich im Designer einen anderen Namen vergeben habe.) Hier ist die Ctest.cpp

Code: Alles auswählen

#include "ui_gui.h"
#include <QtGui>

int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QDialog *window = new QDialog;
Ui::Gui ui;
ui.setupUi(window);//Ctest.cpp:9: Fehler: keine passende Funktion für Aufruf von »Ui::Gui::setupUi(QDialog*&)«
window->show();
return app.exec();
}
Was mach ich falsch??? Kann es sein, das ich im Designer vergessen habe irgendeine Signal/Slot Verbindung zu setzen, oder eine Eigenschaft richtig einzustellen (Den Objektname hab ich gesetzt ;-) Die header Datei "ui_gui.h" habe ich includiert, und sie wird auch erstellt: Muss ich da noch irgendwas hinzufügen?

Verfasst: 7. April 2006 10:46
von Christian81
Sphinx hat geschrieben: Was mach ich falsch???
Habe ich doch schon gesagt... Du übergibst ein QDialog aber setupUI erwartet ein QMainWindow.
Also entweder ein QMainWindow übergeben oder im Designer ein QDialog anstatt ein QMainWindow erstellen (So wie es im Tutorial auch beschrieben ist)

Verfasst: 7. April 2006 11:03
von Sphinx
Genau das war es!!! Vielen Dank!