python - 如何计算并打印出kivy中点击的按钮数
问题描述
我需要一个函数来计算在一组可能四个按钮中的三个中单击了多少个按钮。也就是说,如果我点击三个或四个按钮中的两个按钮,它应该打印出你点击了两个按钮
import kivy
from kivy.app import App
from kivy.uix.floatlayout import Floatlayout
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.label import Label
class LandingScreen(FloatLayout):
def __init__(self, **kwargs):
super(LandingScreen, self).__init__(**kwargs)
# put whatever pos_hint value you want and the on_press event.
self.btn1=Button(text='button1 ', size_hint=(0.5, 0.5)))
self.btn2=Button(text='button1 ', size_hint=(0.5, 0.5)))
self.btn3=Button(text='button1 ', size_hint=(0.5, 0.5)))
self.add_widget(self.btn1)
self.add_widget(self.btn2)
self.add_widget(self.btn3)
# I need a function to count the numbers of buttons clicked out of the three buttons
class SplashApp(App):
def build(self):
return LandingScreen()
if __name__ == '__main__':
SplashApp().run()
解决方案
当按钮被按下时,它应该触发一个功能。此函数应将唯一 ID 添加到集合中。此唯一 ID 可以是第一个按钮的 1,第二个按钮的 2,等等。
它可能看起来像这样:
mySet = set()
def onClick(self, id):
mySet.add(id)
#bind the function to the button
self.btn1.bind(on_press = self.onClick(1))
self.btn2.bind(on_press = self.onClick(2))
self.btn3.bind(on_press = self.onClick(3))
要获取按下了多少个按钮,您可以通过执行来获取长度len(mySet)
。
为什么在列表上使用集合?
一个列表可以有多个相同的项目。集合必须是唯一的。如果用户单击按钮 2 次,列表可能如下所示:[1, 2, 2]。一个集合,不管有多少点击,看起来像这样:[1, 2]
推荐阅读
- json - 在 TypeScript 中更改导入 JSON 的类型
- python - 如何在列中查找具有相似名称的单元格并使用 Python 和 Pandas DataFrame 对其进行汇总
- sql-server - vps 和笔记本电脑之间的 SQL 复制“进程无法连接到分发服务器”
- python - NameError:名称“屏幕”未定义
- r - 防止生成条形图时出错
- latex - how to reduce space after drawing graphs in RMarkdown using tikz
- python - python:将(字符串)集合列表转换为scipy csr_matrix
- ios - Swift - 无法获取 Almofire.request
- python - Matplotlib plot_surface:如何将一维数组转换为所需的二维输入?
- c - 为什么我在函数中收到分段错误消息?