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
