我无法让Python appJar TickOptionBox正常运行

时间:2017-07-21 19:11:26

标签: python user-interface

我会尝试尽可能简短地提供帮助。我正在尝试为宠物项目编写一些很酷的代码,它涉及到GUI。到目前为止,我一直在使用appJar,当我正在执行文本输入时,没有问题从原始窗口调用新窗口。但是,尝试制作复选框列表几乎是不可能的。

这是我尝试完成的一些简化代码,但不起作用:

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()

当我单独调用testfunction时,输出是预期的:带有{Dogs.txt:True,...}的字典,其中包含True和False,具体取决于您是否单击了菜单中的框。 / p>

但是,如果我尝试在按下按钮内调用该功能,则无论选中的复选框如何,字典中的每个值都将设置为false。这通常不是一件大事,但是我需要第一个设置来返回一个标记为true的值的数组(已经完成,除了能够返回)。是什么给了什么?

; tl-dr Appjar似乎不喜欢嵌套的按钮和选项集,即使它们单独工作也是如此。 HALP。

1 个答案:

答案 0 :(得分:0)

我努力重现你提到的问题

但是我建议 - 而不是创建多个GUI,有一个GUI,并创建一个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()

这可能会使事情变得更容易管理,并且似乎可以提供理想的结果。