[gelöst]QtDesigner - Frage zur Anwendung

Verschiedenes zu Qt
Antworten
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

[gelöst]QtDesigner - Frage zur Anwendung

Beitrag von speed04 »

servus qt-leute,

ich würde gern mit dem designer ein mainwindow erstellen und dann ausgehend von dem mainwindow mit einem button ein neues widget/dialog öffnen. das sollte im designer zu gestalten sein. nun bekomme ich es aber nicht hin, dem designer zu sagen, dass er den button "verlinken" soll und dann ein neues widget öffnen muss. funktioniert mein gedankengang überhaupt oder muss man für ein widget eine seperate *ui datei anlegen und diese dann im code verlinken?

hat schon jemand erfahrung damit gemacht und kann mir nen hinweis oder hilfestellung geben???

THX
Zuletzt geändert von speed04 am 13. Dezember 2008 00:16, insgesamt 1-mal geändert.
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Der Designer ist nur zum Erstellen der Oberfläche. Die logischen Verbindungen musst Du im Programm erzeugen (Signal/Slot).

Michael
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag von speed04 »

danke für die schnelle antwort, also muss ich sozusagen für jedes widget/dialog dann eine extra *.ui datei anfertigen und diese dann einbinden und die verknüpfungen (signal/slot) schreiben! okay das hatte ich mir fast gedacht!

da habe ich aber im anschluss noch ne frage, muss ich für jede *.ui datei auch eine neue klasse anlegen oder können mehrere *.ui dateien in eine klasse?
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Ich habe immer für jede Oberfläche eine eigene Klasse. Mehrere Oberflächen in einer Klasse hab ich noch gar nicht probiert, spricht meiner Meinung nach auch gegen den Objekt orientiert Ansatz

Michael
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag von speed04 »

aha okay, ich habe das schonmal probiert bin dann aber daran gescheitert, dass in der main.cpp alles miteinander in einklang zu bringen.

so würde meine main.cpp aussehen, wenn ich eine klasse hätte.

Code: Alles auswählen

#include "empfaenger.h"
#include <QtGui>
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    empfaenger w;
    w.show();
    return a.exec();
}
wie müsste ich das denn schreiben, um mehrere klassen zu vereinen?
hast du da nen tip oder hinweis für mich???

THX
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Wie startest Du den "Datei öffnen" Dialog? Das ist nichts anderes. Das heißt Du musst in der Hauptfenster Klasse Deinen anderen Dialog/Klasse einbinden und abhängig von einer Bedingung (Button?) starten/anzeigen!!

abstrakt:

Code: Alles auswählen

#include "ui_Hauptfenster"
#include "neuerDialog.h"

connect(button, SIGNAL(clicked()), this, SLOT(starteDialog)); 

...starteDialog()
{
    neuerDialig dlg();
   dlg.show();
}
...
Ich hoffe das hilft Dir etwas weiter.
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag von speed04 »

mh, ich glaube ich habe mich ungünstig ausgedrückt.

ich habe mir mit dem designer ein mainwindow erstellt. auf diesem mainwindow befinden sich u.a. checkboxen und pushbuttons. ich habe nun eine main.cpp, eine wert.cpp und eine wert.h.
in dieser wert.h habe ich ja nun die klasse definiert und auch die erstellte datei vom designer eingebunden.
nun möchte ich mit dem designer einen neuen dialog kreieren. so und nun komme ich nicht richtig weiter, das ich einen connect befehl schreiben muss in meiner wert.cpp datei ist verständlich. damit kann ich das neue dialog öffnen, aber in welcher datei muss ich denn jetzt die erstellte ui datei einbinden? nutze ich dafür eine neue headerdatei? wenn ich eine neue headerdatei verwende, dann bekomme ich aber probleme mit dem setupui(this) befehl in der wert.cpp.

ohje ich hoffe das ist verständlich ausgedrückt, wo mein schuh drückt!
bin über hilfe, anregungen und infos dankbar!

thx
MiKla
Beiträge: 134
Registriert: 29. Juli 2007 15:29

Beitrag von MiKla »

Vielleicht verstehe ich Dich auch nicht richtig. Ich habe mal ein Testprojekt angehangen, so wie ich es verstanden habe. Vielleicht hilft Dir das weiter.

Michael
Dateianhänge
test.tar.gz
Testprojekt
(3.08 KiB) 258-mal heruntergeladen
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag von speed04 »

vielen vielen dank, du hast das von anfang an richtig verstanden!
es lag an mir! nun kann ich mich gut an dem beispiel orientieren!!!

ich glaube sonst würde ich noch ewig rumsuchen und probieren!

THX!!!!
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

ich glaube sonst würde ich noch ewig rumsuchen und probieren!
oder alternativ halt auch mal das tutorial durcharbeiten ...
Das Tut was von Trolltech mitgeliefert wird, bringt einen schon das eine Oberflaeche = eine klasse schon sehr nahe, und wie man an beliebieger stelle im code einen Dialog, auch einen benutzerdefinierten, startet, ist auch Thema eines eigenen Kapitels.

Du solltest Dich zuerst an den vorhanden Tutorials orientieren, dann erst an den Beispielen ...

Ciao ...
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag von speed04 »

@rhbaum: nenn mir doch bitte ein tutorial, wo genau das behandelt wird was ich angefragt habe!!!
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

speed04 hat geschrieben:@rhbaum: nenn mir doch bitte ein tutorial, wo genau das behandelt wird was ich angefragt habe!!!
Ein Tutorial ist nicht dazu da deine Probleme zu lösen. Ein Tutorial soll die Arbeitsweise verständlich machen, damit Du deine Probleme selber lösen kannst. Ein Tutorial wird so gut wie nie das enthalten, was man selbst benötigt.
Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag von speed04 »

danke nochmal an michael.klank für deine hilfe!

kann geschlossen werden!
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Beitrag von RHBaum »

nenn mir doch bitte ein tutorial, wo genau das behandelt wird was ich angefragt habe!!!
z.b. QT Dokumentation fuer qt4.4
Adress Book Kapitel 5 - Adding a Find function

Da wird eigentlich genau gezeigt, wie man nen eigenen Dialog in nem benutzerdefinierten Slot aufruft.

Ansonsten in der QT Reference Documentation

unter QDialog

wird im allgemeinen teil beschrieben, wie man von Benutzerdefinierte dialoge erstellen kann und wie man die verwendet ...

Ciao ....
speed04
Beiträge: 39
Registriert: 7. November 2008 15:24

Beitrag von speed04 »

ja ist in ordnung du hast absolut recht!

thx
Antworten