0
Kivy (1.9)를 사용하여 간단한 GUI를 만들고 팝업에서 일부 옵션을 변경하여 db에 저장하려고합니다. 내가 (3.4.5) 충돌 ..Kivy : 다른 클래스에 데이터 전달
main.py 팝업(), 파이썬를 호출 할 때 : 여기
from kivy.app import App
from kivy.uix.button import Button
from kivy.uix.popup import Popup
from kivy.properties import ListProperty
from kivy.lang import Builder
Builder.load_string('''
<PopView>:
title: 'Popup'
size_hint: (.8, .8)
Button:
text: 'Save'
''')
class MainApp(App):
def build(self):
b = Button(text='click to open popup')
b.bind(on_click=self.view_popup())
return b
def view_popup(self):
a=PopView()
a.data=[1,2,3,4] #e.g.
a.open()
class PopView(Popup):
def __init__(self):
self.data = ListProperty()
def save_data(self):
#db.query(self.data)
pass
if __name__ in ('__main__', '__android__'):
MainApp().run()
지금은 작동하지만 im newbie와 나는 왜 당신이 view_popup() 함수에서 * args를 사용하는지 이해하지 못합니다. 내가 __init __() 밖에서 데이터를 선언한다면, 나는 다른 popview 객체에 문제가있을 것인가? 고마워요! –
@JavierStacul * args는 각 인수를 지정할 필요없이 여러 개의 인수를 전달하도록합니다. 이 경우에는 Button 만 전달되므로'def view_pop (self, button)'도 할 수 있습니다. 'print (args)'를 시도해 볼 수 있습니다. '** kwargs'를하면 key = val 인수를 전달할 수 있습니다. 이'def test (** kwargs) : print (kwargs)'를 시도한 다음 test (a = 1, b = 2) .. __init__ 또는 외부에'data'를 정의하더라도 각각의 목적. 그러나 새로운 팝업을 만들 때마다이 경우와 마찬가지로 매번 새로운 데이터를 만듭니다. – EL3PHANTEN