tkinter - 我的 btn_enter 在它被点击后不起作用。我究竟做错了什么。我希望它只工作三遍,然后它应该停止工作
问题描述
彩票功能
# imported modules
from tkinter import *
import smtplib
import random
根窗口
# creating window
root= Tk()
root.geometry("650x450")
root.resizable(False,False)
root.title("Tiffin Seva")
root.configure(bg="Light blue")
变量 # 变量 var1 = StringVar() var_email = StringVar() var_email2 = StringVar()
电子邮件收件人输入字段
user_email = Entry(root,textvariable=var_email, width=40)
lb_mail = Label(root, text="Enter your Email address below.", bg="light blue")
user_email.place(x=200,y=50)
lb_mail.place(x=200,y=10)
定义函数 #defining functions def inbox(): box = Listbox(root,bg="light blue", bd=10, height=15) box.place(x=300,y=0)
def ask():
try:
if var_email.get() == "":
lb_mail.destroy()
user_email.destroy()
btn_enter.destroy()
user_email2 = Entry(root, textvariable=var_email2, width=40,
bd=5,bg="red")
lb_mail2 = Label(root, text="You didn't typed your email 1 try
left.",bg="red")
user_email2.place(x=200, y=35)
lb_mail2.place(x=200, y=10)
这个问题没有发布,它说请添加更多细节。
else:
def start():
btn_enter.destroy()
btn_start.destroy()
lucky_number = random.randint(4000, 5000)
print(lucky_number)
email = "dahiyamohit2007@gmail.com"
password = "Mohit@2007"
server = smtplib.SMTP('smtp.gmail.com', 587)
server.ehlo()
server.starttls()
server.login(f'{email}', f'{password}')
print("login successful")
server.sendmail(f'{email}',
f'{user_email.get()}',
f"{lucky_number}" + str(",This is your
lottery spin number."))
print("message sent successfully")
lbe = Label(root, text="Enter the lucky number you got in your email")
lbe.place(x=200, y=170)
E = Entry(root, textvariable=var1, width=40)
E.place(x=200, y=200)
btn_start = Button(root, text="Start The lottery!", bg="gold",
fg="black", font=("arial", 30), command=start)
btn_start.place(x=170, y=300)
except:
if smtplib.SMTPAuthenticationError:
l = Label(root, text="There is an error couldn't start your lottery.")
l.place(x=170,y=350)
这个按钮是我要修复的。当用户在输入字段中没有输入任何内容时,它应该再次工作。
btn_enter = Button(root,text="Enter", bg="gold", fg="black", font=("arial", 30)
, command=ask)
btn_enter.place(x=200,y=300)
主循环
root.mainloop()
请修复此按钮。
解决方案
我没有完全理解您的代码,您没有提供任何错误详细信息和其他内容,但据我了解,在ask
功能顶部,您应该检查用户是否点击了 3 次按钮。这是想法。
times=0
def ask():
global times
times+=1
if times<=3:
#Here all other things you have done
通过这种方式times
将计算用户点击按钮的次数并检查它是否小于 3。
推荐阅读
- django - 获取 Django API 调用以使用简单的 json 进行响应
- ffmpeg - ffmpeg 创建不需要的临时文件
- android - 将向上/向下滑动事件从 ViewPager2 传播到父 BottomSheet
- vb.net - Crystal Report 根据 IF 条件添加年份或月份
- python - 尝试在同一台 apache2 服务器上托管 2 个 django 网站时遇到问题
- escaping - 雪花中的文件格式问题 - Tilda(字段分隔符),两个双引号
- json - ARM 数据库错误:无法对嵌套资源执行请求的操作。未找到父资源
- google-chrome - 使用 chrome 扩展收听通知
- postgresql - 在 sqlalchemy 中手动设置 id 时的竞争条件
- html - HTML/CSS 无法在下拉菜单中显示项目