[QT] kleines Slot Problem
-
hi
Hab mir ein Custom Widget erzeugt. Wo ein ToolBox Widget erstellt drin ist darin ein neue Page mittels QWidget. Und da wiederum drin ein QListBox.
Jetzt will ich das QListBox das Signal selected(int) mit dem startDrag() connected wird. Leider krieg ich das nicht hin da er immer ein Slot vom QWidget sucht.
Hier mal der Code:class QPluginList : public QWidget { private slots: void startDrag(int id); public: QPluginList(QWidget *parent = 0, const char *name = 0); private: QListBox *pluginlist; }; class QPluginBox : public QWidget { public slots: void startDrag(int id); public: QPluginBox(QWidget *parent = 0, const char *name = 0); private: QToolBox *pluginbox; QWidget *boxpage; QPluginList *pluginpage; };
QPluginBox::QPluginBox(QWidget *parent, const char *name) : QWidget(parent, name) { pluginbox = new QToolBox(this, "PluginBox"); boxpage = new QWidget(this, "BoxPage"); pluginbox->setGeometry(0,0,150,350); pluginbox->addItem(boxpage, "Plugins"); pluginpage = new QPluginList(boxpage, "PluginPage"); } QPluginList::QPluginList(QWidget *parent, const char *name) : QWidget(parent, name) { pluginlist = new QListBox(this, "PluginList"); pluginlist->setGeometry(0,0,150,200); pluginlist->insertItem("TEST",0); connect(pluginlist, SIGNAL(selected(int)), SLOT(startDrag(int))); } void QPluginList::startDrag(int id) { QDragObject *drag = new QTextDrag("Hello World !", this ); drag->dragCopy(); }
Die Fehlerausgabe sieht so aus:
*
QObject::connect: No such slot QWidget::startDrag(int)
QObject::connect: (sender name: 'PluginList')
QObject::connect: (receiver name: 'PluginPage')
*MFG
xmarvel
-
versuch mal folgendes:
statt:
connect(pluginlist, SIGNAL(selected(int)), SLOT(startDrag(int)));das hier:
connect(pluginlist, SIGNAL(selected(int)), this, SLOT(startDrag(int)));hier die syntax:
----------------
// connect von Signal von Sender zu Slot von Empfänger
connect( Sender, Signal, Empfänger, Slot );// connect von Signal von Sender zu Slot von Sender
connect( Sender, Signal, Slot )
-
das ist egal ob ich this schreibe oder weglasse das ist das selbe.
-
hm, damit ich dir besser helfen kann wäre es nützlich wenn du mir dein projekt als .tar.gz file schickst ( inklusive der .kdevelop datei )
dann kann ich selber ausprobieren und dir schneller sagen wo der fehler liegt.
EMail Adresse:
blacknator@yahoo.de
-
ok ist versendet !
-
Habe das Q_OBJECT in der Klasse vergessen.
Danke nochmal an Blacknator der das entdeckt hat.
MFG
xmarvel