(Python 3.3)没有正式的指令,我正试图将我非常基本的Python知识融入到Tkinter中。以下是我正在编写的一个程序。我有两个问题:Tkinter从输入框中获取数据并将其发送到其他函数
1 - 当我运行这个时,两个单选按钮都是激活的,直到我点击一个。不是一个大问题,但它让我很烦恼。
2 - 我似乎无法使用.get()方法将输入框中输入的数据从data_window函数拖动到check_data函数。当我的程序没有通过时,通过检查数据函数之后的下一步是将其发送到formatEntry函数,该函数尚未写入。但是,直到我认为这一点,这显然不会工作。
我有一个没有使用TKinter的功能版本,我试图将这些知识应用于学习目的。所以请随时指出你看到的任何其他问题,请保持对newb非常基本的解释!由于
from tkinter import *
import os, shelve
food_entry = None
# Opens a new window for entering food items
def data_window():
global food_entry
new_window_entry = Tk()
new_window_entry.title('Data Entry Window')
Label(new_window_entry, text = 'Enter the food items you have eaten below, separated by commas:').grid(sticky = W, columnspan = 2)
Label(new_window_entry, text = '(i.e. Apple, Eggs, Ground Beef)').grid(sticky = W, columnspan = 2)
food_entry = Text(new_window_entry, width = 55, height = 2, wrap = WORD)
food_entry.grid(sticky = W, columnspan = 2)
#food_entry = Entry(new_window_entry)
Label(new_window_entry, text = 'Within two hours after eating, did you experience any of the following symptoms:').grid(sticky = W, columnspan = 2)
Label(new_window_entry, justify = LEFT, wraplength = 450, text = 'bloating, diarrhea, nausea, vomiting, irritable bowel, skin rashes, fatigue, joint pain, dark circles under the eyes, night sweats, or tingling or swelling of the face, fingers, feet or other extemities?').grid(sticky = W, columnspan = 2)
inflam = StringVar(master = new_window_entry)
Radiobutton(new_window_entry, text = 'Yes', variable = inflam, value = 'y').grid(row = 9, column = 0, sticky = E)
Radiobutton(new_window_entry, text = 'No', variable = inflam, value = 'n').grid(row = 9, column = 1, sticky = W)
Button(new_window_entry, text = 'Submit', command = check_data).grid(row = 10, column = 0, sticky = W + E)
Button(new_window_entry, text = 'Cancel', command = new_window_entry.destroy).grid(row = 10, column = 1, sticky = W + E)
#Check to ensure all fields have been entered
#Convert entry into formatted list
new_window_entry.mainloop()
def check_data():
global food_entry
print(food_entry.get(1.0, END))
if food_entry.get(1.0, END) == None:
print('Nothing Entered')
# tkMessageBox.showwarning(message = 'Please complete all fields of the form.')
else:
print('Next Function')
# formatEntry()
root = Tk()
root.title('')
Label(root, text = 'Food Tracker v3.0').grid(columnspan = 2)
Button(root, text = 'Enter Data', command = data_window).grid(row = 1, column = 0, sticky = W)
Button(root, text = 'View Data', command = view_window).grid(row = 1, column = 1, sticky = E)
感谢响应。我如上所述进行了更正,并且发生了以下情况:正在将文本框中的文本正确地拉到下一个函数,但是if/else语句不起作用(它不在其中之前),并且单选按钮问题仍然没有解决。另外,我真的很感谢解释。除了声明主人外,我一直能够关注他们,我将在下面详细阅读。 – Gregory6106
用你的新代码编辑你的原始问题,我会看看。 – Jkdc
谢谢!这是解决方案。 – Gregory6106