Seite 1 von 1

Objectname durch variabel erstezen.

Verfasst: Donnerstag 23. Februar 2017, 19:45
von Sven1987h
Moin moin Leute,

ich hätte da mal eine Frage.
Folgendes Problehm ich habe ein Fenster das durch mehrere Button zugleich aufgerufen werden kann, nur der Inhalt ist immer ein andere.
Nun möchte ich nach dem klick auf einen der Button den dazugehörigen inhalt im Fenster anzeigen aber egal was ich mache ich bekomme es einfach nicht hin.

Code: Alles auswählen

self.frame.setVisible(True)
	sender = self.sender()
	sender = sender.objectName()
	print(sender)
	self.sender.setStyleSheet("background-color: red")
In der variabel sender ist der Objektname des zuletzt geklickten buttons.
Aber so Funktioniert es nicht vermutlich weil sender ebend kein Objekt der klasse Button ist.
Meine Frage wäre wie kann ich das anders Lösen?
Ich kann sender gegen einen Button tauschen z.B. btn_ma2 und es funktioniert aber ich weiß halt vorher nicht welcher Button geklickt wurde.


LG Sven

Re: Objectname durch variabel erstezen.

Verfasst: Donnerstag 23. Februar 2017, 20:33
von /me
Sven1987h hat geschrieben:Folgendes Problehm ich habe ein Fenster das durch mehrere Button zugleich aufgerufen werden kann, nur der Inhalt ist immer ein andere.
Ich nehme mal an du verwendest irgendein GUI-Toolkit. Du hast aber weder die Frage im korrekten Unterforum gestellt, noch im Text etwas dazu angegeben. Also: Wovon reden wir hier eigentlich?

Re: Objectname durch variabel erstezen.

Verfasst: Donnerstag 23. Februar 2017, 20:49
von Sven1987h
Hallo /me,

Ja du hast recht ich verwende Pyqt 4 aber ich habe es nicht erwähnt weil ich davon ausgegangen bin das ich egal wo ein Objekt nicht einfach durch eine Variabel Tauschen kann.

LG Sven

Re: Objectname durch variabel erstezen.

Verfasst: Donnerstag 23. Februar 2017, 21:40
von BlackJack
@Sven1987h: Ähm, Du *hast* doch das sendende Objekt bereits in den Fingern gehabt und ersetzt es dann *selbst* durch den (Qt-Objekt-)Namen des Objekts. Lass das einfach bleiben oder binde den Namen wenigstens nicht an den selben Namen in Python. Das sollte man aus Gründen der Nachvollziehbarkeit sowieso nicht machen.