Seite 1 von 1

Objekt ansprechen

Verfasst: Samstag 20. Dezember 2025, 15:10
von kitebuggy
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).

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())
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

Re: Objekt ansprechen

Verfasst: Samstag 20. Dezember 2025, 16:19
von __blackjack__
@kitebuggy: Wenn man Texte auf andere Werte abbilden will, dann gibt es Wörterbücher (`dict`). Wenn die Werte fortlaufend nummerierte ”Namen” sind, dann will man kein Wörterbuch, sondern eine Liste.