Voici un fichier de ressources de l'échantillon pour PythonCard:Comment obtenir dynamiquement une liste de tous les composants PythonCard dans une classe d'interface graphique?
{ 'application':{ 'type':'Application',
'name':'Test Sounds',
'backgrounds':
[
{ 'type':'Background',
'name':'Test Sounds',
'title':'Test Sounds',
'position':(5, 5),
'size':(300, 200),
'components':
[
{ 'type':'TextField', 'name':'fldFilename', 'position':(5, 4), 'size':(200, -1), 'text':'anykey.wav' },
{ 'type':'Button', 'name':'btnFile', 'position':(210, 5), 'size':(-1, -1), 'label':'Select File' },
{ 'type':'Button', 'name':'btnPlay', 'position':(5, 40), 'size':(-1, -1), 'label':'Play' },
{ 'type':'CheckBox', 'name':'chkAsync', 'position':(5, 70), 'size':(-1, -1), 'label':'Async I/O', 'checked':0 },
{ 'type':'CheckBox', 'name':'chkLoop', 'position':(5, 90), 'size':(-1, -1), 'label':'Loop sound', 'checked':0 },
] } ] } }
Avec ce fichier source:
from PythonCard import model
class Sounds(model.Background):
# Some irrelevant methods... #
if __name__ == '__main__':
app = model.Application(Sounds)
app.MainLoop()
Comment puis-je aller sur dynamiquement obtenir une liste de tous les composants « Button » (pour exemple) à partir de la classe GUI?
Les composants sont accédés de la manière self.components.<component name>
donc ma pensée initiale était for x in self.components: ...
, mais self.components
n'est pas itérable.
Je pense que la réponse est liée à celle-ci: http : //stackoverflow.com/questions/2352181/how-to-use-a-dot-to-access-members-of-dictionary –
Avez-vous résolu votre problème? –