Appjar标签不会更新

2024-05-13 22:13:22 发布

您现在位置:Python中文网/ 问答频道 /正文

link to code in pastebin 我是Python新手,我试图创建一个计算器应用程序。我正在为我的计算器GUI使用Appjar库。计算器工作正常,但是appjar标签“bar”不会更新,尽管变量累加器发生了变化。我曾尝试添加循环、appjar的.after()函数,以及干扰appjar的自动更新系统,但我似乎无法解决这个问题

#define variables
error=''
accumulator = 0
mem = 0
op = ''
 
#import GUI
from appJar import gui
app=gui("Grid Demo", "500x600")
app.setSticky("news")
app.setExpand("both")
app.setFont(20)
 
       
# Do the math will take the accumulator and memory registers and perform the prevailing operation on them.
# It returns the result, as an integer
def doTheMath(a,b,o):
    if o == "add":
        return a + b
    if o == "sub":
        return b - a
    if o == "mul":
        return a * b
    if o == "div":
        return b/a
 
    #press function defines the output of each button.
def press(button):
    global accumulator
    global mem
    global op
 
    print ("A button was pressed: " + button)
    if button == "C":
        accumulator = 0
        op = ""
        mem = 0
    elif button == "=":
        accumulator = doTheMath(accumulator,mem,str(op))
        mem = 0
        op = ""
    elif button == "+":
        op = "add"
        mem = accumulator
        accumulator = 0
    elif button == "-":
        op = "sub"
        mem = accumulator
        accumulator = 0
    elif button == "x":
        op = "mul"
        mem = accumulator
        accumulator = 0
    elif button == "÷":
        op = "div"
        mem = accumulator
        accumulator = 0
    else:
        accumulator = accumulator * 10 + int(button)
    print ("Acc: " + str(accumulator) + ", op: " + op + ", mem: " + str(mem))
    app.go()
   
       
    #define widgets in GUI
app.addLabel("bar", error+str(accumulator), 0, 0, 3)
app.addButtons(["1"], press, 3, 0)
app.addButtons(["2"], press, 3, 1)
app.addButtons(["3"], press, 3, 2)
app.addButtons(["4"], press, 2, 0)
app.addButtons(["5"], press, 2, 1)
app.addButtons(["6"], press, 2, 2)
app.addButtons(["7"], press, 1, 0)
app.addButtons(["8"], press, 1, 1)
app.addButtons(["9"], press, 1, 2)
app.addButtons(["0"], press, 4, 1)
app.addButtons(["+"], press, 3, 3)
app.addButtons(["-"], press, 4, 3)
app.addButtons(["x"], press, 2, 3)
app.addButtons(["÷"], press, 1, 3)
app.addButtons(["="], press, 4, 2)
app.addButtons(["C"], press, 4, 0)
app.go()

Tags: theappreturnifguibuttonmem计算器
1条回答
网友
1楼 · 发布于 2024-05-13 22:13:22

Appjar需要.setlable()在“bar”中的任何变量发生变化时被引用, 我创建了一个名为changeable()的函数

def changeLabel():  
    app.setLabel("bar", error+str(accumulator))

当在if语句集的末尾引用时,将标签“bar”更改为error+str(accumulator
归功于贾森哈珀

相关问题 更多 >