-3
나는 AccountPopup (Popup)이라는 클래스를 가지고있다 :
나는 AccountPopup 클래스의 state_id_text 변수를 정의한다. 나는 .kv 파일에서 self.state_id_text.text 값을 얻는다. 이 함수의 값파이썬 - 자기 자신을 다른 함수에 넘겨주기
def populate_tree_view_account_city(tree_view, parent, node):
및 인쇄.
class TreeviewCityAccount(Popup):
treeviewAccountCity = ObjectProperty(None)
tv = ObjectProperty(None)
h = NumericProperty(0)
#ti = ObjectProperty()
popup = ObjectProperty()
def __init__(self, **kwargs):
super(TreeviewCityAccount, self).__init__(**kwargs)
self.tv = TreeView(root_options=dict(text=""),
hide_root=False,
indent_level=4)
for branch in treeAccountState:
populate_tree_view_account_city(self.tv, None, branch)
#self.remove_widgets()
self.treeviewAccountCity.add_widget(self.tv)
Clock.schedule_once(self.update, 1)
def remove_widgets(self):
for child in [child for child in self.treeviewAccountCity.children]:
self.treeviewAccountCity.remove_widget(child)
def update(self, *args):
self.h = len([child for child in self.tv.children]) * 24
def filter(self, f):
self.treeviewAccountCity.clear_widgets()
self.tv = TreeView(root_options=dict(text=""),
hide_root=False,
indent_level=4)
new_tree = []
for n in treeAccountCity:
if f.lower() in n['node_id'].lower():
new_tree.append(n)
for branch in new_tree:
populate_tree_view_account_city(self.tv, None, branch)
self.treeviewAccountCity.add_widget(self.tv)
def populate_tree_view_account_city(tree_view, parent, node):
#print(state_id_text.text)
if parent is None:
tree_node = tree_view.add_node(TreeViewLabelAccountCity(text=node['node_id'],
is_open=True))
else:
tree_node = tree_view.add_node(TreeViewLabelAccountCity(text=node['node_id'],
is_open=True), parent)
for child_node in node['children']:
populate_tree_view_account_city(tree_view, tree_node, child_node)
cur.execute("SELECT stateId FROM m_state WHERE stateName=?", (state_id_text.text,))
rows = cur.fetchall()
treeAccountState = []
for r in rows:
treeAccountState.append({'node_id': r[1], 'children': []})
class AccountPopup(Popup):
state_id_text = ObjectProperty(None)
def display_cities_treeview_account(self, instance):
print(self.state_id_text.text)
if len(instance.text) > 0:
if self.popupAccountCity is None:
self.popupAccountCity = TreeviewCityAccount()
self.popupAccountCity.popup_account_city = self
self.popupAccountCity.filter(instance.text)
나를 도와 줄 사람이 있습니까?
글쎄, 인스턴스를 만든 다음이 속성을 함수에 전달해야합니다. 내가 잘못 이해했다면, 당신이 기대하는 바를 이해하지 못한다는 것을 분명히 말하십시오. – scharette
클래스'AccountPopup' 내부에서'populate_tree_view_account_city' ** 함수를 ** 호출하는 것이 목표입니까? – scharette