Я сделал кнопку, которая открывает Google. Я исправил проблему, но мне интересно, почему это сработало - PullRequest
0 голосов
/ 13 января 2020

Я делаю небольшую программу (сначала на самом деле) с Tkinter. Предполагается, что эта программа имеет логотипы для веб-сайтов и при нажатии открывает веб-сайт.

google_url = 'https://www.google.com'

def OpenUrl():
    webbrowser.open_new(google_url)

button1 = tk.Button(root, command=OpenUrl)

Этот код работает (после упаковки / импорта всего)

Теперь этот код был до:

button1 = tk.Button(root, command=webbrowser.open_new('https://www.google.com'))

Я новичок в Python, поэтому я очень хочу понять, почему это изменение сработало. Был ли это Python переводчик, который сделал что-то? Теперь, это не весь код, который я написал, так что если вы думаете, что я должен показать это, спросите меня, но это было различие, которое позволило коду работать. (Откройте Google, когда кнопка была нажата. Раньше, когда код запускался, он открывал Google, но не открывал tkinter)

1 Ответ

0 голосов
/ 13 января 2020

Ура для вашего первого проекта!

Ваша первая попытка не сработала, потому что аргумент command должен работать. webbrowser.open_new('https://www.google.com') - это функция , которая уже была вызвана и, таким образом, оценена. Теперь оно равно open_new() возвращаемому значению (которое ничто ).

Содержимое OpenUrl не оценивается, пока не будут нажаты кнопки, так как функция запускается только при вызове. Также будет работать лямбда (безымянная встроенная функция):

button1 = tk.Button(root, command= lambda: webbrowser.open_new('https://www.google.com'))

Удачного кодирования!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...