Как импортировать функцию при использовании модуля tkinter без ValueError - PullRequest
0 голосов
/ 05 апреля 2019

Я использую tkinter для своего графического интерфейса и пытаюсь импортировать простую функцию из одного файла (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()

В другом файле (importar.py), куда будет импортирована функция sumar (), есть две записи, одна кнопка и одна метка (для ответа на сумму)упакован, но здесь важен оператор импорта, как он у меня есть:

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 голосов
/ 05 апреля 2019

Ола, я думаю, что если вы объявляете '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 sum

...