Zugriff auf Objekt

Alles rund um die Programmierung mit Qt
Antworten
kitebuggy
Beiträge: 10
Registriert: 16. Juli 2021 22:30

Zugriff auf Objekt

Beitrag 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
I want my office to be quiet. The loudest thing in the room - by far - should be the occasional purring of the cat.

Linus Torvalds
Antworten