2017-07-21 7 views
0

Ich werde versuchen, dies für mögliche Hilfe so kurz wie möglich zu machen. Ich versuche, einen coolen Code für ein Tierprojekt zu schreiben, und es beinhaltet eine GUI. Ich habe bis jetzt appJar verwendet, und hatte kein Problem, neue Fenster von einem Original aufzurufen, wenn ich Texteingabe ausführe. Es hat sich jedoch als nahezu unmöglich erwiesen, eine Liste von Kontrollkästchen zu erstellen.Ich kann die Python appJar TickOptionBox nicht richtig funktionieren

Hier ist ein vereinfachter Code für das, was ich versuche, zu erreichen, aber funktioniert nicht:

from appJar import gui 

def testfunction(): 
    def get(btn): 
     print(app.getOptionBox("Favourite Pets")) 
    petlist=["Dogs.txt", "Cats.txt", "Hamsters.txt", "Fish.txt"] 
    print(petlist) 
    app=gui() 
    app.setFont(20) 
    app.addTickOptionBox("Favourite Pets", petlist) 
    app.addButton("GET", get) 
    app.go() 

testfunction() 

def press(button): 
    if button == "Cancel": 
     app2.stop() 
    else: 
     testfunction() 

app2=gui("Name") 
app2.addButtons(["TEST", "Cancel"], press) 
app2.go() 

Wenn ich die Testfunktion von selbst aufrufen, wird die Ausgabe wie erwartet: ein Wörterbuch mit {Dogs.txt : True, ...} mit True und False, je nachdem, ob Sie auf die Box im Menü geklickt haben oder nicht.

Wenn ich jedoch versuche, die Funktion innerhalb der Taste zu drücken, wird jeder Wert im Wörterbuch auf false gesetzt, unabhängig von den aktivierten Kästchen. Dies wäre normalerweise keine große Sache, aber ich brauche das erste Setup, um ein Array mit den Werten zurückzugeben, die als wahr markiert sind (bereits erledigt, außer dass es möglich ist, zurückzukehren). Was gibt?

; tl-dr Appjar scheint verschachtelte Sätze von Schaltflächen und Optionen nicht zu mögen, auch wenn sie einzeln gut funktionieren. HALBE.

Antwort

0

ich kämpfen, um das Problem zu reproduzieren Sie

erwähnt habe

Aber etwas würde ich vorschlagen - stattdessen mehrere GUIs zu schaffen, haben eine GUI, und erstellen SubWindow:

from appJar import gui 
petlist=["Dogs.txt", "Cats.txt", "Hamsters.txt", "Fish.txt"] 

def get(btn): 
    print(app.getOptionBox("Favourite Pets")) 

def press(button): 
    if button == "Cancel": 
     app.stop() 
    else: 
     app.showSubWindow("Pets") 

app = gui("Name") 
app.setFont(20) 
app.addButtons(["TEST", "Cancel"], press) 

app.startSubWindow("Pets") 
app.addTickOptionBox("Favourite Pets", petlist) 
app.addButton("GET", get) 
app.stopSubWindow() 

app.go() 

Dies könnte erleichtern die Verwaltung und scheinen die gewünschten Ergebnisse zu liefern.

Verwandte Themen