我正在尝试使用tkinter创建一个程序,将秒转换为h:m:s格式。我得到了我的tkinter gui。我只是坚持与数学编程相关的问题,并可能是一个tkinter GUI问题。
当我测试并尝试将h:m:s结果打印到shell时,我得到了
答案 0 :(得分:1)
括号
m,s = divmod(int(self.secondsEntry.get(),60))
^
|
应该在这里:
m,s = divmod(int(self.secondsEntry.get()),60)
^
|
第一个意思是“将这个base-60字符串转换为int”,而Python没有base的符号> 36(0-9 + a-z)。如果您没有指定基数,则默认为base-10。
修改强>
您的覆盖问题有两种基本解决方案。
最简单的选择是在写入新值之前删除Entry内容,
self.result.delete(0, END)
self.result.insert(0,c)
更复杂(但功能强大)的选项是将Entry框绑定到StringVariable,
self.resultVar = StringVar()
self.result = Entry(master = self.root_window, textvariable = self.resultVar)
然后你可以像
一样写信给它 self.resultVar.set(c) # automatically updates the Entry value