Tkinkter неправильно принимает код страны

#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

Комментарии:

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 ~ Подумайте о том, чтобы отметить это как правильный ответ, если это правильно ответило на ваш вопрос. Нажмите здесь , чтобы узнать, как 😀