Ich befasse mich leider erst seit kurzem mit QT, habe hauptsächlich in bereits vorhandenen Projekten gedebuggt und Funktionalitäten hinzugefügt. Jetzt sollte ich allerding ein neues kleines Tool bauen, also fix den QT Designer gezückt ein schönes Main-Window-UI zusammengebastelt und das ganze in VS 2008 per Pre-Build Event im vorraus erzeugen lassen. Klappt soweit wunderbar.
Jetzt hab ich nur zwei grundlegende Probleme/Fragen:
Da ich die UI von der Funktionalität eigendlich trennen will müssen ja die Signale irgendwie aus dem Main Window raus kommen. Wie stelle ich das an? Wie man am code unten sieht erzeuge ich ein QMainWindow dass ich mit meinem UI fülle. ich müsste doch jetzt noch irgendwie im UI Signale erzeugen, die ich dann in einer neuen Klasse (nur mal als Gedankenspiel StitchProcess) per Slots wieder abfangen kann prozessieren und dann wieder elemente der UI setzten (wie einen Process bar). Oder habe ich da einen generellen Denkfehler?
Die andere Frage ist, ich habe ein weiteres Widget erstellt, mit einem Label einer Spin Box und einem Slider. Dieses Widget will ich jetzt wiederum in mein Main Window UI einsetzten, ich habe zwar schon gelesen, dass es geht, nur das wie ist mir leider noch nicht ganz klar.
Ich hoffe ich konnte meine Probleme einigermaßen klar darstellen.
Ich habe zwar schon dierse Seiten durchwühlt, aber der Groschen ist leider noch nicht gefallen.
*winke*
Edit: Narg ... in dem Fred: http://qtforum.de/forum/viewtopic.php?t=7869 scheint mein zweites Problem behandelt zu werden.
Edit2: Okay mit dem zweiten Problem bin ich etwas weiter gekommen, aber leider noch nicht weit genug. Ich habe mir im Designer auf folgenden weg ein neues Widget gebastelt: neu -> Widget. Danach habe ich das Widget mit einen Label, einer SpinBox und einem Slider gefüllt. den Slider mit der Spinbox und andersherum verbunden. Jetzt muss ich nur zum Initalisierungszeitpunkt 4 Parameter festlegen: Name des labels, Min/Max Werte und Start wert des Spinners bzw. Sliders. So langsam habe ich das gefühl dass der Designer hier an seine Grenzen kommt, un ich zwar jetzt fürs erste mir die h/cpp files erstellen lassen kann, nur jetzt das ganze per Hand machen muss. (Ausser ich kann einen "Prozessor" definieren, der auf die Parameter zugreifen kann.)
Des weiteren ist auch noch das Problem, dass ich da noch Fehlermeldungen bekomme:
error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
Das ganze an der flogenden Stelle:
Code: Alles auswählen
....#include <spinboxslidercombowidget.h>
QT_BEGIN_NAMESPACE
class Ui_StitchGui
{
public:
...
SpinBoxSliderComboWidget *mTemplateCountContainerFrame;
SpinBoxSliderComboWidget *mTemplateSizeContainerFrame;
SpinBoxSliderComboWidget *mTemplateMatchingYBorderContainerFrame;(Der Main App Code)
Code: Alles auswählen
#include <qt/qapplication.h>
#include "StitchGui.h"
int main( int argc, char* argv[] )
{
QApplication app( argc, argv );
QMainWindow *mainWindow = new QMainWindow();
Ui::StitchGui stitchGui;
stitchGui.setupUi(mainWindow);
mainWindow->show();
int ret = app.exec();
return ret;
}