我使用kivy生成一个滚动视图,当点击按钮时,每个按钮都被一个数字标记。我还有另一个按钮,用于清除滚动视图中的按钮,但它会保留数字并且不会重置为0.
我的python代码:
class GetLinksButton(Button):
link_number = 1
def get_links(self):
for i in xrange(3):
link_button = LinkButton(
text='link number ' + str(self.link_number)
)
self.link_number += 1
self.links_grid.add_widget(link_button)
class LinkButton(Button):
pass
class Clearlinkbuttons(Button):
def clear_links(self):
self.links_grid.clear_widgets()
GetLinksButton.link_number = 1
我的kivy代码:
<RightArea@GridLayout>:
cols: 1
size_hint_x: 0.3
spacing: '10dp'
ScrollView:
LinksGrid:
id: links_grid
BoxLayout:
cols: 1
rows: 2
GetLinksButton:
links_grid: links_grid
Clearlinkbuttons:
links_grid: links_grid
<LinksGrid@GridLayout>:
cols: 1
spacing: '5dp'
size_hint_y: None
height: self.minimum_height
<GetLinksButton>:
size_hint_y: 0.1
text: 'get links'
on_press: self.get_links()
<Clearlinkbuttons>:
size_hint_y: 0.1
text: 'clear links'
on_press: self.clear_links()
<LinkButton>:
size_hint_y: None
height: '80dp'
我的应用程序在我按下了获取链接和清除链接按钮几次后:
滚动视图位于顶部。
我也尝试过:
class Clearlinkbuttons(Button):
def clear_links(self):
self.links_grid.clear_widgets()
self.links_grid.link_number = 1
答案 0 :(得分:1)
在课程GetLinksButton
中,将self.link_number
的每次出现都替换为GetLinksButton.link_number
。
如果您有一个静态变量(link_number
),并使用对象实例(self
)而不是类(GetLinksButton
)调用它,则该变量将被复制到一个对象中使用它。