Я пытаюсь добавить набор кнопок в вид прокрутки сетки, используя для цикла. Но событие нажимается для всех кнопок даже до нажатия кнопок. Как я могу это исправить?Кнопка нажимается до нажатия кнопки
from kivy.uix.gridlayout import GridLayout
from kivy.uix.button import Button
from kivy.uix.scrollview import ScrollView
from kivy.core.window import Window
from kivy.app import runTouchApp
import webbrowser
def btnsclicked(id, url):
print 'btn id '+id+' clicked'
webbrowser.open(url)
layout = GridLayout(cols=1, spacing=10, size_hint_y=None)
layout.bind(minimum_height=layout.setter('height'))
for i in range(5):
url= 'https://www.google.com'
btn = Button(text=str(i), size_hint_y=None, height=40, id='b'+str(i))
btn.bind(on_press =btnsclicked('b'+str(i), url))
layout.add_widget(btn)
root = ScrollView(size_hint=(1, None), size=(Window.width, Window.height))
root.add_widget(layout)
runTouchApp(root)
привет Жан, как я могу передать аргументы без вызова функции? – SaikiHanee
с использованием выражения lamba, которое является функцией реле для подключения обратного вызова к пользовательскому обратному вызову. –
Большое спасибо, Жан :) – SaikiHanee