我知道z
是一个Entry
,5是一个integer
但我不知道如何将z
更改为用户可以输入的integer
。
这是我的代码:
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)
的 Entry 小部件的关键字参数,在 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()
分配,因为这样说可能是错误的,相反您也可以这样做。 此外,要获取输入框的值,您可以使用z.get()
这意味着您的最后一行代码将是
x = 5 + int(z.get())
print(z.get())
我不建议使用z = z.get()
,因为您的函数之外已经有一个 z。请注意,我使用的是int()
因为在 Python 中你不能"+"一个 str 和 int。