使用不带ValueError的tkinter模块时如何导入函数

时间:2019-04-05 00:51:36

标签: python tkinter import anaconda spyder

我将tkinter用于我的GUI,并且试图将一个简单函数从一个文件(desde.py)导入到另一个文件(importar.py)

该文件将从中导入,该函数具有以下功能:

from tkinter import *

root = Tk()

def sumar():
    s.set( int(e1.get()) + int(e2.get()) )
    e1.set("")
    e2.set("")

e1 = StringVar()
e2 = StringVar()
s = StringVar()

root.mainloop()

在将要导入函数sumar()的另一个文件(importar.py)中,有两个条目,一个按钮和一个标签(用于求和),但这里重要的是import语句为我有它:

from tkinter import *
from desde import sumar

root = Tk()

sumar()

e1 = StringVar()
e2 = StringVar()
s = StringVar()

#code of entries, button and label

root.mainloop()

当我执行时,我得到:ValueError:int()以10为底的无效文字:''

我不明白为什么也不是什么。我该怎么办才能使此功能真正起作用?在这种情况下您会怎么做?

1 个答案:

答案 0 :(得分:0)

哦,我想如果您将's'声明为StringVar,则不能使用int类型来设置它。

见下文

  

importar.py

from tkinter import *
from desde import sumar

root = Tk()

print(sumar())

#code of entries, button and label

root.mainloop()
  

desde.py

 from tkinter import *

root = Tk()

e1 = StringVar()
e2 = StringVar()
s = StringVar()

x = IntVar()
y = IntVar()
z = IntVar()


def sumar():

    e1.set(5)
    e2.set(5)

    x.set(5)
    y.set(5)

    s.set(e1.get() + e2.get())
    z.set(x.get() + y.get())



    return s.get(),z.get()



root.mainloop()

注意z和s之和