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)