2015-10-03 4 views
-1

Я пробовал все, и я довольно измучен. Проблема в том, что возникает ошибка «Невозможно преобразовать объект« Entry »в str неявно» И я не нашел способа заставить его работать.Как получить текст из виджета ввода tkinter?

Вот код:

from tkinter import * 

def wcommand(): 
    import webbrowser 
    new=2; 
    url='https://'+w 
    webbrowser.open(url,new=new); 

root = Tk() 


Label (root, text="Nettadresse:").grid(row=0) 
w = Entry(root) 
w.grid(row=0, column=1,) 

b1 = Button(root, text='Kjør!', command=wcommand).grid() 

root.mainloop() 

ответ

0

Есть несколько вещей неправильно с вашим кодом. Во-первых, вам не нужны эти точки с запятой. Во-вторых, вы не хотите url='https://'+w там, вы хотите url='https://'+w.get() там. .get() будет извлекать содержимое строки этого виджета Entry. В-третьих, вместо:

Label (root, text="Nettadresse:").grid(row=0) 

вы должны сделать:

mylabel = Label(root, text="Nettadresse:") 
mylabel.grid(row=0) 

Это гарантирует, что вы можете обратиться к этому Label объект позже, в случае, если вы хотите, чтобы настроить его или переместить его или что-то. В-четвертых, вы должны указать import webbrowser как вторую строку своего кода, ниже from tkinter import *, а не каждый раз, когда вызывается эта функция.

1

.get Используйте метод, чтобы получить текст из Entry виджета:

url='https://{}'.format(w.get()) 
+1

Большое спасибо! –

+0

Нет, пожалуйста. –

Смежные вопросы