Это подходящее время для использования глобальной переменной? Должен ли я использовать stringVar
? Что я могу сделать, чтобы собрать текст после того, как пользователь изменил его значение?
Когда я добавляю оператор print(my_msg)
ниже строки my_msg = sms_textbox.get('1.0', 'end-1c')
в функции get_txtmsg()
, он напечатает, что текст изменился.
Тот же оператор print(my_msg)
в функции askfilename_sms()
возвращает "Hi, how are you?"
def askfilename_sms():
print(my_msg)
ent3 = ttk.Labelframe(
tab1, text='New Client Survey SMS')
ent3.grid(
row=3, column=0, sticky=tk.NSEW, padx=2, pady=2)
ttk.Label(
ent3, text='This....\n').grid(row=0, column=-0)
def get_txtmsg():
global my_msg
my_msg = sms_textbox.get('1.0', 'end-1c')
askfilename_sms()
my_msg = "Hi, how are you?"
sms_btn = ttk.Button(
ent3, text="Send SMS Surveys",
command=lambda: get_txtmsg())
sms_btn.grid(
row=1, column=1, padx=90, pady=10)
sms_textbox = tk.Text(
ent3, height=6, width=34)
sms_textbox.insert(
'1.0', my_msg)
sms_textbox.grid(
row=0, column=1)
РЕДАКТИРОВАТЬ:
Так что я не совсем уверен, почему это работает, но я поместил все функции в одну функцию, и теперь она работает (не в восторге, но, возможно, это правильный путь):
def get_txtmsg():
global my_msg
my_msg = sms_textbox.get('1.0', 'end-1c')
sms_msg_box = tk.messagebox.askyesno(
title='Are you ready to begin?',
message='click to send')
if sms_msg_box:
tk.messagebox.showinfo(
message='Please select New Client Report')
sms_nc_filename = filedialog.askopenfilename(
title="Select New Client file",
filetypes=(("excel files", "*.xls"), ("all files", "*.*")))
if not sms_nc_filename:
return
else:
send_sms.send_survey_text(sms_nc_filename, my_msg)
my_msg = "Hi, how are you"
sms_btn = ttk.Button(
ent3, text="Send SMS Surveys",
command=lambda: get_txtmsg())
sms_btn.grid(
row=1, column=1, padx=90, pady=10)
sms_textbox = tk.Text(
ent3, height=6, width=34)
sms_textbox.insert(
'1.0', my_msg)
sms_textbox.grid(
row=0, column=1)