有谁知道这里发生了什么?目标:有很多按钮。单击两个,它们都单独将一个项目附加到一个空列表中。当列表的 len 为 2 时(单击 2 个不同的按钮后)如果两个项目不相同,则清除/清空列表。如果两项相同,则清除/清空列表,并禁用这两个按钮。这里的想法是记忆游戏。这些按钮一开始是空白的,您单击它,它们会显示文本,而该文本就是附加到列表中的项目。
问题:如果附加的两个项目匹配,它会按预期禁用按钮,但不会再清空/清除列表。为什么?使用屏幕也很重要,因为它将成为不同应用程序中许多人之间的屏幕。
相关部分
the_btn[0].text = ''
the_btn[1].text = ''
pairs.clear()
the_btn.clear()
elif pairs[0] == pairs[1]:
the_btn[0].disabled = True
the_btn[1].disabled = True
pairs.clear()
the_btn.clear()
完整代码:
from kivy.app import App
from kivy.lang import Builder
from kivy.uix.screenmanager import Screen, ScreenManager
Builder.load_string("""
<ScreenOne>:
StackLayout:
Button:
id: btn_1
text:''
size_hint: 0.2, 0.15
on_release:
root.b1()
root.check()
Button:
id: btn_2
text:''
size_hint: 0.2, 0.15
on_release:
root.b2()
root.check()
Button:
id: btn_3
text:''
size_hint: 0.2, 0.15
on_release:
root.b3()
root.check()
Button:
id: btn_4
text:''
size_hint: 0.2, 0.15
on_release:
root.b4()
root.check()
Button:
id: exit
text:'exit'
size_hint: 1, 0.15
on_release: app.stop()
""")
class ScreenOne(Screen):
def b4(self):
b4 = self.ids['btn_4']
b4.text = 'K'
def b3(self):
b3 = self.ids['btn_3']
b3.text = 'K'
def b2(self):
b2 = self.ids['btn_2']
b2.text = 'L'
def b1(self):
b1 = self.ids['btn_1']
b1.text = 'L'
def check(self):
buttons = [(self.ids['btn_1']), (self.ids['btn_2']), (self.ids['btn_3']), (self.ids['btn_4'])]
pairs = []
the_btn = []
DIEA
相关分类