Python +;的操作数类型不受支持:';int';和';条目';
我知道Python +;的操作数类型不受支持:';int';和';条目';,python,tkinter,Python,Tkinter,我知道z是一个条目,5是一个整数,但我不知道如何将z更改为用户可以输入的整数。 这是我的代码: import smtplib from tkinter import * window = Tk() z = Entry(window, width=35, bg="white") z.grid(row=5, column=2, sticky=W) def click(): global YOUR_EMAIL_ADDRESS YOUR_EMAIL_ADDRESS=YOUR_EM
z
是一个条目
,5是一个整数
,但我不知道如何将z
更改为用户可以输入的整数。
这是我的代码:
import smtplib
from tkinter import *
window = Tk()
z = Entry(window, width=35, bg="white")
z.grid(row=5, column=2, sticky=W)
def click():
global YOUR_EMAIL_ADDRESS
YOUR_EMAIL_ADDRESS=YOUR_EMAIL_ADDRESS.get()
global YOUR_PASSWORD
YOUR_PASSWORD=YOUR_PASSWORD.get()
global TARGET_EMAIL
TARGET_EMAIL=TARGET_EMAIL.get()
global subject
subject=subject.get()
global msg
msg=msg.get()
global z
z=z.get()
send_email(subject, msg)
x = 5 + z
print(z)
在tkinter中,字符串和整数分别有StringVar()
和IntVar()
。因此,这里您需要使用一个名为Entry(…,textvariable=my_var)
的输入小部件的关键字参数,在tkinter中,您必须在使用变量之前定义它,因此这是您的代码,如果您理解有困难,我可以简化您的代码,您可以询问或复制并使用它
import smtplib
from tkinter import *
window = Tk()
my_var = IntVar()
z = Entry(window, width=35, bg="white",textvariable=my_var)
z.grid(row=5, column=2, sticky=W)
def click():
global YOUR_EMAIL_ADDRESS , YOUR_PASSWORD , TARGET_EMAIL , subject , msg
YOUR_EMAIL_ADDRESS=YOUR_EMAIL_ADDRESS.get()
YOUR_PASSWORD=YOUR_PASSWORD.get()
TARGET_EMAIL=TARGET_EMAIL.get()
subject=subject.get()
msg=msg.get()
send_email(subject, msg)
x = 5 + my_var.get()
print(my_var)
请注意,我删除了您的z=z.get()
赋值,因为这样说可能是错误的,您也可以这样做。
另外,要获取entrybox的值,可以使用z.get()
,这意味着最后一行代码将是
x = 5 + int(z.get())
print(z.get())
我不建议使用z=z.get()
,因为在函数之外已经有了一个z。请注意,我使用的是int()
,因为在Python中,您不能“+”str和int。您知道print仅在终端中显示它吗?是的,我只是在测试一些东西,我添加了答案,希望有帮助这是我得到的新错误消息发生异常:TypeError不支持+:“int”和“IntVar”的操作数类型我更新了ans,抱歉:(这是新的错误消息,我得到异常已发生:TypeError不支持+:“int”和“IntVar”的操作数类型应该是x=5+my_var.get()
。我很抱歉,没有得到正确的结果:(((谢谢@acw1668)