Bei Signals und Slots Values übergeben

Verschiedenes zu Qt
Antworten
macpret
Beiträge: 28
Registriert: 25. September 2007 01:58

Bei Signals und Slots Values übergeben

Beitrag von macpret »

Hallo,

Ich wollte gerade meinen Code etwas optimieren und eine Vielzahl von Slots, welche alle zum Abspeichern von Werten zuständig sind reduzieren.

Dieses wollte ich machen indem ich nur noch einen Speicher-Slot anlege, welcher dann eine ID übergeben bekommt um dann die korrekten Werte abzuspeichern.

Leider kann ich diese ID nicht übergeben, denn sobald ich den Slot so anlege, dass er eine Eingabe hat, wird der Slot nicht mehr gefunden.

in der header-datei:

Code: Alles auswählen

void saveSlot(int);
in der cpp-datei:

Code: Alles auswählen

connect(m_action_Save_Everything, SIGNAL(triggered()), this, SLOT(saveSlot(1)));

Code: Alles auswählen

void DataWindow::saveSlot(int ID)
{
  if (ID == 0)
  {
     //blablubb
  }
  if (ID == 1)
  {
     //blablubb
  }
}
Ist es gar nicht möglich irgendwas noch mitzuschicken, oder ist dies lediglich auf eine andere Art und Weise möglich?

Vielen Dank
mac
I divided by NULL - Buuuuuh ;-)
macman
Beiträge: 1738
Registriert: 15. Juni 2005 13:33
Wohnort: Gütersloh
Kontaktdaten:

Beitrag von macman »

Die deutsche Schriftsprache ist case-sensitive. Außerdem gibt es eine Interpunktionsnorm. Wenn manch einer seine Programme genauso schlampig schreibt, wie sein Posting hier, dann sollte er es lieber bleiben lassen.
macpret
Beiträge: 28
Registriert: 25. September 2007 01:58

Beitrag von macpret »

Frage: Geht es nicht "einfacher"?

Ich möchte doch nicht jeden Button, jeden Menü-Eintrag durch eine "Eigenkreation" erstetzen. :-/
I divided by NULL - Buuuuuh ;-)
CaptnChaos
Beiträge: 605
Registriert: 28. Juni 2007 15:01
Kontaktdaten:

Beitrag von CaptnChaos »

hm, du kannst dein button auch per
void MyClass::MySlot()
{
QPushButton *pb = qobject_cast<QPushButton*>(sender());
if(pb->text() == "close")
qApp->quit();
}
bekommen
macpret
Beiträge: 28
Registriert: 25. September 2007 01:58

Beitrag von macpret »

Also im Endeffekt im Slot prüfen, welcher Butten es war und dann dementsprechend reagieren. - Das wäre vom Umfang noch ok.

Mich wundert es allerdings dennoch, dass man beim Verbinden zwischen Signal und Slot nicht wie bei jeder Funktion einfach einen Parameter mit übergeben kann.

Aber erstmals vielen Dank. Werte es mal so ausprobieren.

Gruß
mac
I divided by NULL - Buuuuuh ;-)
Antworten