🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: be.comp.programming
4 messages
4 total messages Started by Matata Tue, 17 Feb 2004 20:40
QT QListView
#3010
Author: Matata
Date: Tue, 17 Feb 2004 20:40
25 lines
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
#3015
Author: Stijn De Smet
Date: Wed, 18 Feb 2004 09:50
26 lines
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
#3023
Author: Matata
Date: Wed, 18 Feb 2004 19:16
31 lines
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
#3025
Author: Stijn De Smet
Date: Wed, 18 Feb 2004 23:57
59 lines
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