Thread View: be.comp.programming
4 messages
4 total messages
Started by Matata
Tue, 17 Feb 2004 20:40
QT QListView
Author: Matata
Date: Tue, 17 Feb 2004 20:40
Date: Tue, 17 Feb 2004 20:40
25 lines
1871 bytes
1871 bytes
Stukje code om het duidelijk te maken: fBuddyList = new QListView (this); QListViewItem * jabber = new QListViewItem (fBuddyList, "Jabber"); QListViewItem * gebruiker2 = new QListViewItem ( jabber, "Dico"); connect ( fBuddyList , SIGNAL (doubleClicked (gebruiker2)), this, SLOT (startChat())); Ik kan dit compileren, maar als ik het wil uitvoeren dan krijg ik deze foutmelding: QObject::connect: No such signal QListView::doubleClicked(gebruiker2) QObject::connect: (sender name: 'unnamed') QObject::connect: (receiver name: 'unnamed') Volgens de internet documentatie moet Signal van deze nieuwe vorm zijn: void QListView::doubleClicked ( QListViewItem *, const QPoint &, int ) [signal] iemand enig idee hoe ik met nu een opdracht (hier startChat()) kan oproepen door op gebruiker2 te dubbel klikken??? Ik geraak er maar niet aan uit hoe ik die QPoint moet gaan uitvissen... Greetz Matata
Re: QT QListView
Author: Stijn De Smet
Date: Wed, 18 Feb 2004 09:50
Date: Wed, 18 Feb 2004 09:50
26 lines
1873 bytes
1873 bytes
Matata wrote: > Stukje code om het duidelijk te maken: > > fBuddyList = new QListView (this); > QListViewItem * jabber = new QListViewItem (fBuddyList, "Jabber"); > QListViewItem * gebruiker2 = new QListViewItem ( jabber, "Dico"); > > connect ( fBuddyList , SIGNAL (doubleClicked (gebruiker2)), this, SLOT > (startChat())); Ik denk dat je eerder dit moet gebruiken: connect(fBuddyList, SIGNAL(doubleClicked(QListViewItem*)),this,SLOT(startChat(QListViewItem*))); En dan in je startChat(..) functie kijken op welk QListViewItem er gedubbelklikt is. > > > Ik geraak er maar niet aan uit hoe ik die QPoint moet gaan uitvissen... De extra parameters meegeven? SIGNAL(doubleClicked(QListViewItem*, QPoint*,....)) Ik ben wel niet zeker of je in je SLOT parameters mag laten 'vallen'. -- Stijn De Smet
Re: QT QListView
Author: Matata
Date: Wed, 18 Feb 2004 19:16
Date: Wed, 18 Feb 2004 19:16
31 lines
2027 bytes
2027 bytes
On Wed, 18 Feb 2004 10:50:31 +0100, Stijn De Smet wrote: > Matata wrote: > >> Stukje code om het duidelijk te maken: >> >> fBuddyList = new QListView (this); >> QListViewItem * jabber = new QListViewItem (fBuddyList, "Jabber"); >> QListViewItem * gebruiker2 = new QListViewItem ( jabber, "Dico"); >> >> connect ( fBuddyList , SIGNAL (doubleClicked (gebruiker2)), this, SLOT >> (startChat())); > > Ik denk dat je eerder dit moet gebruiken: > connect(fBuddyList, > SIGNAL(doubleClicked(QListViewItem*)),this,SLOT(startChat(QListViewItem*))); > > En dan in je startChat(..) functie kijken op welk QListViewItem er > gedubbelklikt is. >> >> >> Ik geraak er maar niet aan uit hoe ik die QPoint moet gaan uitvissen... > > De extra parameters meegeven? > SIGNAL(doubleClicked(QListViewItem*, QPoint*,....)) > Ik ben wel niet zeker of je in je SLOT parameters mag laten 'vallen'. en die QPoint van waar haal je die? Ik heb geen coordinaten opgegeven, behalve bij opstarten van hoofdscherm. Greetz Matata
Re: QT QListView
Author: Stijn De Smet
Date: Wed, 18 Feb 2004 23:57
Date: Wed, 18 Feb 2004 23:57
59 lines
3457 bytes
3457 bytes
Matata wrote: > On Wed, 18 Feb 2004 10:50:31 +0100, Stijn De Smet wrote: > >> Matata wrote: >> >>> Stukje code om het duidelijk te maken: >>> >>> fBuddyList = new QListView (this); >>> QListViewItem * jabber = new QListViewItem (fBuddyList, "Jabber"); >>> QListViewItem * gebruiker2 = new QListViewItem ( jabber, "Dico"); >>> >>> connect ( fBuddyList , SIGNAL (doubleClicked (gebruiker2)), this, SLOT >>> (startChat())); >> >> Ik denk dat je eerder dit moet gebruiken: >> connect(fBuddyList, >> SIGNAL(doubleClicked(QListViewItem*)),this,SLOT(startChat(QListViewItem*))); >> >> En dan in je startChat(..) functie kijken op welk QListViewItem er >> gedubbelklikt is. >>> >>> >>> Ik geraak er maar niet aan uit hoe ik die QPoint moet gaan uitvissen... >> >> De extra parameters meegeven? >> SIGNAL(doubleClicked(QListViewItem*, QPoint*,....)) >> Ik ben wel niet zeker of je in je SLOT parameters mag laten 'vallen'. > > en die QPoint van waar haal je die? > Ik heb geen coordinaten opgegeven, behalve bij opstarten van hoofdscherm. > Uit de QT docs: void QListView::doubleClicked ( QListViewItem *, const QPoint &, int ) [signal] This signal is emitted whenever an item is double-clicked. It's emitted on the second button press, not the second button release. The arguments are the relevant QListViewItem (may be 0), the point in global coordinates and the relevant column (or -1 if the click was outside the list). Warning: Do not delete any QListViewItem objects in slots connected to this signal. Als je dus je startChat functie uitbreidt tot startChat(QListViewItem * item, const QPoint & pos, int col) dan kun je de 3 parameters gebruiken in die functie. Het eerste gaat een pointer zijn naar het item waarop gedubbelklikt is, het tweede een reference naar de QPoit van de positie op je scherm waar de tweede klik voorkwam en het derde de kolom in je QListView waarin gedubbelklikt is op het item. QT gaat deze waarden zelf invullen als je connected SLOT aangeroepen wordt, je moet deze waarden niet zelf specifieren. Als je dus wil weten op welke gebruiker gedubbelklikt is, moet je dat in startChat(...) verwerken(op basis van het QListViewItem*). -- Groeten, Stijn
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads