![](https://secure.gravatar.com/avatar/84010db55dbfb2c2ea446a9914c979e5.jpg?s=120&d=mm&r=g)
Hallo. Am Fre, den 03.09.2004 um 20:17 Uhr +0200 schrieb Diez B. Roggisch:
if access(pfad1+'/progname', X_OK) or access(pfad2+'/progname', X_OK): if group: rbprogname = gtk.RadioButton(label = 'ProgName', group = group) else: rbprogname = gtk.RadioButton(label = 'ProgName') group = rbprogname vbox1.pack_start(rbprogname)
progname ist im Skript immer der Name des gesuchten Programms.
Kann jemand meiner Logik auf die Sprünge helfen?
Wieso verwendest du keine dicts?
progs = {} if access(pfad1+'/progname', X_OK) or access(pfad2+'/progname', X_OK): if group: progs[rbprogname] = gtk.RadioButton(label = 'ProgName', group = group) else: progs[rbprogname] = gtk.RadioButton(label = 'ProgName') group = progs[rbprogname] vbox1.pack_start(progs[rbprogname])
Weil ich nicht so wirklich die Ahnung habe. :-( Bis eben habe ich noch nie etwas von dicts gehört. Muss mich darüber mal schlau machen. Laut meinem schlauen Büchlein werden dicts mit dict() oder dict(Inhalt) aufgerufen. Warum verwendest du hier progs = {} ?
Wobei die Sache mit der Variablen group mir nicht ganz klar ist.
Ich muss doch bei gtk.RadioButton eine Gruppe von RadioButton angeben, wenn immer nur ein RadioButton aktiv sein darf. Wenn ich die Gruppe auf ProgA beziehe, kann es ein Problem geben, wenn ProgA nicht existiert, sondern erst ProbB. Die Übergabe der Variabel group für die Gruppe schien mir am einfachsten. Bzw. war die einzige Lösung, die mir eingefallen ist.
Ausserdem ist dein acces-test nicht besonders clever - was wenn du mehr als 2 Pfade hast? Da sollte eine Liste hin - ungefaehr so:
Es gibt nur, oder hat nur vier Pfadmöglichkeiten zu geben. ;-) Und die habe ich jeweils mit pfad1 bis pfad4 in eine Variabel gepackt. Damits nicht so lang wird, hab ich hier die letzten Zwei unterschlagen. Aber wegen die vier Möglichkeiten habe ich ja auch jeweils or mit eingebaut.
paths = ["pfad1", "pfad2"] prognames = ["prog1", "prog2]
for progname in prognames: found = False for path in paths: if access(os.path.join(path, progname)): break print "Found %s at %s" % (progname, path)
Das muss ich mir noch genauer anschauen. Auf den ersten Blick und meinem Verständnis müsste ich das doch sowohl für mein Problem, als auch für die Tests nehmen können. Oder bin ich voll verpeilt? Gruß Marcus _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de