Objekt ansprechen
Verfasst: Samstag 20. Dezember 2025, 15:10
Hallo
Ich habe folgendes Problem:
Ich erstelle eine Buttongroup und möchte einzelne Buttons ausserhalb der Funktion ansprechen.
Hier mein Quelltext, damit man weiss, was ich bezwecke (Die for-Schleife bekommt ihre Werte hier aus einer range(0,9), aber im reellen Programm aus einem dict. Das sollte aber das ganze nicht stören).
Natürlich ist die ganze funktion buttonchecked Quatsch, da sie eine Syntaxerror erzeugt, aber der Text der Buttons der Liste soll ändern.
Danke für eure Hilfe
Ich habe folgendes Problem:
Ich erstelle eine Buttongroup und möchte einzelne Buttons ausserhalb der Funktion ansprechen.
Hier mein Quelltext, damit man weiss, was ich bezwecke (Die for-Schleife bekommt ihre Werte hier aus einer range(0,9), aber im reellen Programm aus einem dict. Das sollte aber das ganze nicht stören).
Code: Alles auswählen
#!/usr/bin/python
import sys
from PyQt5.QtWidgets import (QApplication,QWidget,QVBoxLayout,QPushButton,QButtonGroup)
class panel(QWidget):
def __init__(self):
super().__init__()
self.buildPanel()
#self.buttonchecked()
self.show()
def buildPanel(self):
'''
builds the panel
'''
vlayout=QVBoxLayout()
self.setWindowTitle('ButtonGroup test')
buttonGroup=QButtonGroup(self)
buttonGroup.setExclusive(False)
for pin in range(0,9):
button=QPushButton(self)
button.setCheckable(True)
button.setText(str(pin))
button.setObjectName(str(pin))
#f'self.button{pin}'=button #irgendsoetwas
buttonGroup.addButton(button)
vlayout.addWidget(button)
buttonGroup.buttonClicked.connect(self.buttonClick)
self.setLayout(vlayout)
def buttonClick(self,button):
pin=button.text()
print(f'Button: {pin}')
def buttonchecked(self):
checked=[2,3,5]
for button in checked:
f"button{button}".setText('pressed')
if __name__ == '__main__':
app = QApplication(sys.argv)
d=panel()
sys.exit(app.exec())
Danke für eure Hilfe