2014-04-01 3 views
1

У меня есть проблема. У меня есть текстовый виджет для ввода пользователем вместо виджета ввода и, похоже, не может извлечь данные из него. Например, с помощью виджета ввода вы используете .get(), но что бы вы использовали для текстового виджета?Текстовый виджет tkinter

Спасибо за вашу помощь ...

Label(insertscreen, text="Please enter the Recipe ID").grid(row=0, sticky=W) 
Label(insertscreen, text="Please enter the Recipe Name").grid(row=1, sticky=W) 
Label(insertscreen, text="Please enter the Method of the Recipe").grid(row=2, sticky=W) 
Label(insertscreen, text="Please enter the First Ingredient").grid(row=3, sticky=W) 
Label(insertscreen, text="Please enter the Second Ingredient").grid(row=4, sticky=W) 
Label(insertscreen, text="Please enter the Third Ingredient").grid(row=5, sticky=W) 
Label(insertscreen, text="Please enter the Fourth Ingredient").grid(row=6, sticky=W) 
Label(insertscreen, text="Please enter the Fifth Ingredient").grid(row=7, sticky=W) 
Label(insertscreen, text="Please enter the Cooking Time, in minutes").grid(row=8, sticky=W) 

Enter1= Entry(insertscreen) 
Enter1.grid(row=0, column=1) 
Enter2= Entry(insertscreen) 
Enter2.grid(row=1, column=1) 
Enter3= Text(insertscreen, width = 50, height = 10) 
Enter3.grid(row=2, column=1) 
Enter4= Entry(insertscreen) 
Enter4.grid(row=3, column=1) 
Enter5= Entry(insertscreen) 
Enter5.grid(row=4, column=1) 
Enter6= Entry(insertscreen) 
Enter6.grid(row=5, column=1) 
Enter7= Entry(insertscreen) 
Enter7.grid(row=6, column=1) 
Enter8= Entry(insertscreen) 
Enter8.grid(row=7, column=1) 
Enter9= Entry(insertscreen) 
Enter9.grid(row=8, column=1) 

#Entering the new recipe into the database 
def submit_recipe(): 

global Enter1, Enter2, Enter3, Enter4, Enter5, Enter6, Enter7, Enter8, Enter9, new_db 

ID = Enter1.get() 
Name = Enter2.get() 
Method = Enter3.get() 
Ing1 = Enter4.get() 
Ing2 = Enter5.get() 
Ing3 = Enter6.get() 
Ing4 = Enter7.get() 
Ing5 = Enter8.get() 
TimeofRec = Enter9.get() 
+0

Пожалуйста, добавьте __code__ – sshashank124

+0

'содержание = text.get (1.0, END)' http://effbot.org/tkinterbook/text.htm – atlasologist

+0

СПАСИБО ТАК БОЛЬШОЙ АТЛАСОЛОГ ... ЭТО РАБОТАЕТ !!!!!!!!!!!!!! – Zainab

ответ

2

Текст виджета использует получить, но, как виджет управляет несколько строк текста, то он имеет селекторы задающие области контента. См. Сайт tkdocs для получения подробных сведений об использовании этого виджета и manual page. Пример, чтобы получить первую строку текста:

firstline = textWidget.get("1.0", "1.0 lineend") 
+0

СПАСИБО ДЛЯ ВАШЕЙ ПОМОЩИ КАК ХОРОШО !!! – Zainab

0

Два наиболее распространенных способов для извлечения текста из текстового виджета следующим образом:

1) захватить весь текст в виджете:

all_text = TextWidget.get('1.0', Tkinter.END) 

2) захватить текст, который выбран в данный момент:

ranges = TextWidget.tag_ranges(Tkinter.SEL) 
    if ranges: 
     selected_text = TextWidget.get(*ranges) 
Смежные вопросы