Захотелось сделать интерфейс к моей программе генератору-проверочнику электронных почт, но возникла проблема. Использовал Tkinter.
Exception in Tkinter callback
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/tkinter/__init__.py", line 1892, in __call__
return self.func(*args)
File "/Users/user/Desktop/code.py", line 45, in test
tr1 = Label(window, text=val + ":" + is_valid, fg="red")
TypeError: can only concatenate str (not "bool") to str
from tkinter import *
from validate_email import validate_email
import DNS
window = Tk()
window.geometry("300x200")
window.title("HI WORLD")
lbl = Label(window, text="Write name:")
lbl.grid(column=1, row=0)
lbl2 = Label(window, text="Write lastname:")
lbl2.grid(column=1, row=1)
lbl3 = Label(window, text="Write domain:")
lbl3.grid(column=1, row=2)
name = Entry(window, width=10)
name.grid(column=2, row=0)
namee = Entry(window, width=10)
namee.grid(column=2, row=1)
domain = Entry(window, width=10)
domain.grid(column=2, row=2)
name = str(name)
namee = str(namee)
domain = str(domain)
i1 = name + '@' + domain
i2 = name + '.' + namee + '@' + domain
i3 = name + namee + '@' + domain
i4 = namee + '@' + domain
i5 = namee + '.' + name + '@' + domain
i6 = name[0] + namee + '@' + domain
i7 = name[0] + '.' + namee + '@' + domain
i8 = name + namee[0] + '@' + domain
i9 = name + '.' + namee[0] + '@' + domain
i10 = name[0] + namee[0] + '@' + domain
i11 = name[0] + '@' + domain
def test():
for val in i1, i2, i3, i4, i5, i6, i7, i8, i9, i10. i11:
is_valid = validate_email(val, verify=True)
if is_valid == True:
t = Label(window, text=val + ":" + is_valid, fg="green")
t.grid(column=4, row=4)
else:
t1 = Label(window, text=val + ":" + is_valid, fg="red")
t1.grid(column=4, row=4)
btn = Button(window, text="Checking", command=test)
btn.grid(column = 1, row=3)
window.mainloop()
Так-же хотелось бы узнать, как сделать так, чтобы каждый электронный адрес выводился в новую строку, как в консоли просто несколько принтов.