Tkinter输入框和数学相关的编程

时间:2017-08-19 23:00:57

标签: python tkinter

我正在尝试使用tkinter创建一个程序,将秒转换为h:m:s格式。我得到了我的tkinter gui。我只是坚持与数学编程相关的问题,并可能是一个tkinter GUI问题。

当我测试并尝试将h:m:s结果打印到shell时,我得到了

1 个答案:

答案 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