PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Brauche Hilfe bei QWidget übergabe....



Mat
07-11-2005, 22:00
Hallo... ich habe eine KLasse mit einer ToolBox. Diese ToolBox hat im Konstruktor mehrere Pages. Nun habe ich eine andere KLasse geschrieben die für eine einzelne page stehen soll. Ich möchte also damit page2 in der Klasse1 gebaut wird irgendwie die Klasse2 aufrufen damit die page2 ausgebaut wird... Aber es will einfach nicht klappen..... bei sieht das jetzt so aus:

#include <class2.h>
Class1::Class1()
{
. . .
toolBox = new QToolBox( tab1, "???" );
toolBox->setGeometry( QRect( 0, 0, 810, 970 ) );
toolBox->setCurrentIndex( 0 );
page_1 = new QWidget( toolBox, "page_1" );
page_2 = new QWidget(toolBox, "page_2");

//Hier der wichtige Teil!!!
Class2 C2 = new Class2(page_2); .
. .
}

//jetzt mal meine cpp der Class2:
#include <class1.h>
Class2::Class2(QWidget* parent) : QDialog( parent ) { ... }

//und der Class2 header:
class Class2 : public QDialog
{
Q_OBJECT
public:

Class2(QWidget* parent);
~Class2();
...


Die Fehlermeldung die kommt ist:


class1.cpp: In constructor `Class1::Class1(QWidget*, const char*, bool, unsigned int)':
error: no matching function for call to `Class2::Class2(QWidget&)'

Ich habe nun einigermassen herausgefunden warums bei mir nicht durchläuft... also wenn ich einfach nur das QWidget übergebe und die Klasse nicht als Erbe von QDialog implementiere also alsganz alleinstehende dann funktionierts.... ich kann damit aber nicht auf den protected slot virtual void languageChange zugreifen also diesen nicht implementieren wie die Class1 würde das gerne aber dennoch tun....habe ich dazu irgendwie die Möglickeit? Danke!

anda_skoa
08-11-2005, 13:59
Bist du sicher da page_2 ein QWidget* ist

Btw, Class2 ist ein QDialgo, d.h. das wird ein extra Fenster. Wenn du es als Teil der Page haben willst, mußt du vin QWidget ableiten

Ciao,
_