Ja freilich ist dieses Feld grau, denn wofür willst Du einen String eingeben. Man programmiert schließlich in Python und tkinter nicht aber im GuiDesigner.
Und in pygubu kannst Du auch keinen Source Code eingeben, sondern nur reinschreiben, wie die Funktion heißt. Und die mußt Du auch selber manuell programmieren.
Aber wozu soll es gut sein, eingeben zu können, wie die Funktion heißt? Normalerweise gibt man dann im Programm einen Callback auf mybutton.config(command=myfunction) an.
Aber nicht normalerweise kann man doch im GuiDesigner auch schon eine solche Funktion eingeben, wenn man das unbedingt tun will.
Hier wäre etwa das Script hello.py:
Code: Alles auswählen
Button('button_hello',**{'text': 'Hello', 'bg': 'green'}).place(**{'y': '49', 'x': '59'})
Label('label_text',**{'text': 'Please press the button'}).place(**{'y': '19', 'x': '16'})
Das kannst Du ja mal mit abspeichern und dann mit dem GuiDesigner laden. Und dann wählst Du nicht den Label oder den Button aus, sondern den Container '.'
Und für Container Widgets kann man auch Code eingeben, wenn man denn so will. Dazu wählst Du dann im Menü aus: Special->Expert Options->Code
Und dann kannst Du dort eingeben:
Code: Alles auswählen
widget('button_hello')['command'] = lambda: print("Hello World")
Und drückst dann OK. Wenn Du Dich vertippt hast, gargelt eventuell das Programm ab. Ist aber nicht schlimm. Kannst nach dem nächsten Start wieder in Code gehen und mit dem Button 'Load' den vertippten Code wieder laden und korrigieren. Wenn Du Dich nicht vertippt hast und OK drückst, hast Du einen funktionierenden Button.
Wenn Du das dann speicherst und dann neu lädst, tut der Button, wenn Du mit Load & Run lädst. Und er tut nicht, wenn Du mit Load & Edit lädst. Normalerweise will man ja GUI editieren und nicht unbedingt ein Programm dabei laufen haben, das mitunter gar die GUI verändert.
Also ich benütze auch mitunter diese Code Option. Schreibe aber dann nur einen Kommentar rein, damit ich diese Stelle im Source Code mit meinem Editor gut finden kann. Mit diesem habe ich Syntax Highlighting und auch eine bessere Schrift. Ein Text Widget von tkinter ist da nicht gerade das Optimale.
Und auch noch gut an dieser Code Option ist: wenn man da etwas reinschreibt und sei es nur ein Kommentar, hat man dann im Source Code einen markierten Code Block und weiss dann, wo man zusätzlichen Source Code reinschreiben muss, damit dieser dann auch läuft oder nicht läuft und auch immer erhalten bleibt, wenn man wieder speichert.
Ach so, habe ich noch vergessen zu erwähnen, wenn man so einen Code eingegeben hat, sieht man im GuiDesigner um den Container eine blaue Markierung. Das bedeutet, dass dazu Code vorhanden ist.