FlorianBecker hat geschrieben:Hallo,
woher weisst du, das du einen Paramter im SLOT übergeben kannst? Nach meinem Kentnisstand kannst du keinen Paramter übergeben, sondern bekommst die id des insertItems nur mit, wenn du die IDs zuordnest, also etwa so:
Steht das irgendwo in der Doku mit dem einen Wert übergeben? Interessiert mich, da ich das öfters brauchen könnte. Danke.
Ich bin mir zwar nicht sicher, genau zu wissen wie das mit den signals und slots intern abläuft, aber ich glaube, man kann es sich der Anschauung halber so vorstellen (und nach dieser Methode funktioniert es auch):
Der Witz der signals ist, dass sie in der Klassendefinition so auftauchen:
Code: Alles auswählen
class XY
{
Q_OBJECT
...
signals:
void mySignal(int arg);
...
}
Und innerhalb einer Methode dieser Klasse z.B. so aufgerufen werden, aber ohne irgendwo eine Methode mit dem Namen des signals einzurichten:
Code: Alles auswählen
int myArgument = 329; // der Wert spielt keine Rolle
emit mySignal(myArgument);
Irgendwo steht jetzt beispielsweise:
Code: Alles auswählen
QObject::connect(sender, SIGNAL(mySignal(int)), reciever, SLOT(mySlot(int)) );
Und die Definition von dem Slot sieht beispielsweise so aus:
Code: Alles auswählen
class ABC
{
Q_OBJECT;
...
public slots:
mySlot(int argument) { /*mach was*/ }
...
}
Für die Anschauung reicht es, wenn Du Dir vorstellst, dass Qt für Dich den Code so umschreibt, als stände an der Stelle mit
dann ein Aufruf Deiner Slot-Methode, der Du myArgument übergibst.
Ich hoffe, wirklich, dass ich hier keinen Mist verzapfe, aber auf diese Weise habe ich jetzt schon mehrere signals und slots ausprogrammiert und alle haben funktioniert.
Ciao
Konrad