PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [QT Designer] mit button ein anderes Widget starten??



fraggo01
20-07-2004, 21:24
Wie kann ich aus der Main application einen anderen Dialog starten?


void TVtool::setchannellist_clicked()
{
channels ww;
ww.show();
}

mit #include ".ui/channels.h" hab ich es includiert.

Beim kompilieren kommt der Fehler:

.ui/channels.cpp: In constructor `channels::channels(QWidget*, const char*, unsigned int)':
.ui/channels.cpp:33: error: `channelsLayout' undeclared (first use this function)
.ui/channels.cpp:33: error: (Each undeclared identifier is reported only once for each function it appears in.)


Ich denke mir mal, das ich was vergessen hab.
Die ./ui/channels.cpp wird ja nicht fehlerhaft sein, die wird ja vom qt designer erstellt...

Kann mir wer helfen?

Vielen dank im vorraus.

undefined
20-07-2004, 23:29
.ui/channels.cpp: In constructor `channels::channels(QWidget*, const char*, unsigned int)':
Der Prototype ist nicht richtig

.ui/channels.cpp:33: error: `channelsLayout' undeclared (first use this function)
Ergibt sich durch den vorherigen Fehler oder er ist nicht in der Header definiert.

.ui/channels.cpp:33: error: (Each undeclared identifier is reported only once for each function it appears in.)
Dito

Zeige am besten mal den ganzen Code vor allem die include Definitionen der Header dürften Interessant sein sowie das Program wo mit du erstellt hast.

anda_skoa
21-07-2004, 00:50
Übrigens ist das so wie du es jetzt hast kein gute Idee :)



MyClass::slot()
{
Dialog d;
d.show();
}

Du erzeugst das Dialogobjekt am Stack, d.h. es wird automatisch zerstört, wenn der Slot zu Ende ist, was nach show() der Fall ist.

Wenn der Dialog das Hauptfenster blockieren soll, muss dort exec() statt show() stehen.

Wenn der Dialog parallel zum Hauptfenster Input verarbeiten soll, muss der Dialog am Heap erzeugt werden


Dialog* d = new Dialog();
d->show();


Ciao,
_

Maledictus
21-07-2004, 02:13
Auch für mich gut zu wissen :)

Gibt es irgendwo eine Sammlung mit solchem Wissen?

fraggo01
21-07-2004, 08:21
TVTool.ui.h:


#include "settings.h"
#include ".ui/channels.h"
#include <qstring.h>
#include <qdir.h>



.
.
.
.

void TVtool::setchannellist_clicked()
{
channels ww;
ww.show();
// ww.exec();
}

Wenn ich ww.exec(); nehme, dann sagt der kompiler das exec nicht deklariert sei...
Die qapplication.h hatte ich auch schon inkludiert, ohne erfolg.


TVtool.ui.h: In member function `virtual void TVtool::setchannellist_clicked()':TVtool.ui.h:96: error: `exec' undeclared (first use this function)
TVtool.ui.h:96: error: (Each undeclared identifier is reported only once for each function it appears in.)

fraggo01
21-07-2004, 10:25
in der ./ui/channels.h war ein Fehler.
Jetzt kompiliert er mit ww.show() durch...
Es passiert aber nix, wenn ich auf den button klicke...

Bei ww.exec() sagt er immernoch, das exec nicht deklariert sei.


Bei
channels* ww = new channels();
ww.show();
kommt diese Fehlermeldung:

TVtool.ui.h:96: error: request for member `show' in `ww', which is of non-aggregate type `channels*'

fraggo01
21-07-2004, 13:32
Habs hinbekommen, hatte ein paar fehler...

Vielen dank.