#python #tkinter
Вопрос:
Я делаю этот проект в колледже, используя tkinter
графический интерфейс и pywhatkit
. Он показывает, что код страны отсутствует, даже если я его поставил (с символом). Мой код:
from tkinter import *
import pywhatkit as kit
import tkinter.messagebox as tmsg
root = Tk()
root.title("Whatsapp Auto Message Scheduler")
p_num = str(Label(root, text = 'Enter the phone number(with Country code):').grid(row = 0))
msg = Label(root, text = 'The message:').grid(row = 1)
h = Label(root, text = 'Timing(hour, as per 24hr clock):').grid(row = 2)
m = Label(root,text = 'Timing(minute):').grid(row = 3)
e1 = Entry(root)
e2 = Entry(root)
e3 = Entry(root)
e4 = Entry(root)
e1.grid(row = 0, column = 1)
e2.grid(row = 1, column = 1)
e3.grid(row = 2, column = 1)
e4.grid(row = 3, column = 1)
def pywhatkit():
p = kit.sendwhatmsg(p_num, msg, h, m)
tmsg.showinfo("Whatsapp Auto Mesage Scheduler","Response Submitted!")
return p
B = Button(root, text = 'Submit', command = pywhatkit)
B.grid(row=4,column=1)
root.mainloop()
Ошибка, которую он показывает:
Комментарии:
1. как Ты думаешь
p_num
, я уже могу сказать Тебе, что это"None"
так, и так, и такmsg
, и такh
, и такm
. почему вы все равно используете метки в качестве аргументов (на самом деле не метки , а…None
, потому что методы компоновки возвращаютсяNone
). Вы имели в виду использовать то, что указано в записях? тогда Вы должны использоватьe1.get()
,e2.get()
и так далее2. да, я пытаюсь это сделать
3. @AryanSingh используйте
e1.get()
,e2.get()
, … вместоp_num, msg, h, m
того, чтобы внутриkit.sendwhatmsg()
4. также зачем использовать
return p
вpywhatkit
функции? к нему все равно нельзя получить доступ, так как он вызывается с помощью кнопки5. это все еще повторяет ту же ошибку
Ответ №1:
Есть пара проблем. Вы на самом деле проверяли, что p_num = str(Label(...))
это такое? Давайте попробуем это в оболочке:
>>> import tkinter
>>> str(tkinter.Label(text="Hello world").grid(row=0))
'None'
>>>
Я не буду вдаваться в подробности, но правильный способ получить запись пользователя-это вызвать .get()
соответствующий виджет ввода:
Label(root, text = 'Enter the phone number(with Country code):').grid(row = 0)
Label(root, text = 'The message:').grid(row = 1)
Label(root, text = 'Timing(hour, as per 24hr clock):').grid(row = 2)
Label(root, text = 'Timing(minute):').grid(row = 3)
phone_number_entry = Entry(root)
message_entry = Entry(root)
hour_entry = Entry(root)
minute_entry = Entry(root)
phone_number_entry.grid(row = 0, column = 1)
message_entry.grid(row = 1, column = 1)
hour_entry.grid(row = 2, column = 1)
minute_entry.grid(row = 3, column = 1)
def pywhatkit():
phone_number = phone_number_entry.get()
message = message_entry.get()
hour = int(hour_entry.get())
minute = int(minute_entry.get())
kit.sendwhatmsg(phone_number, message, hour, minute)
tmsg.showinfo("Whatsapp Auto Mesage Scheduler","Response Submitted!")
Комментарии:
1. @AryanSingh ~ Подумайте о том, чтобы отметить это как правильный ответ, если это правильно ответило на ваш вопрос. Нажмите здесь , чтобы узнать, как 😀