Kivy/KivyMD - 按钮没有反应

Posted

技术标签:

【中文标题】Kivy/KivyMD - 按钮没有反应【英文标题】:Kivy/KivyMD - Button does not react 【发布时间】:2021-06-04 05:43:39 【问题描述】:

休息后,我尝试使用 Kivy/KivyMD 库编写代码,但我注意到我无法使按钮工作。即使我使用我知道可以正常工作的旧代码,也没有任何反应。

单击按钮后没有反应,并且 Kivy 和 KivyMD 按钮都存在此问题。

这是一个示例代码:

from kivy.app import App
from kivy.uix.button import Button

class ButtonApp(App):

    def build(self):

        btn = Button(text="Push Me !",
                     font_size="20sp",
                     background_color=(1, 1, 1, 1),
                     color=(1, 1, 1, 1),
                     size=(32, 32),
                     size_hint=(.2, .2),
                     pos=(300, 250))

        btn.bind(on_press=self.callback)
        return btn

    def callback(self, event):
        print("button pressed")

root = ButtonApp()
root.run()

我从这个网页中获取了上面的示例代码:https://www.geeksforgeeks.org/python-working-with-buttons-in-kivy/。正如我写的那样,这对于 Kivy 和 KivyMD 都是如此,一旦我按下按钮,就没有任何反应。

我正在使用 Pycharm 版本 203.7148.72、Kivy 版本 2.0.0、KivyMD 版本 0.104.1。

提前感谢您的帮助。

【问题讨论】:

你能分享你的 ~/.kivy/config.ini 吗?特别是 [input] 部分。 当然:[输入] 鼠标 = multitouch_on_demand wm_touch = wm_touch wm_pen = wm_pen 我认为第一行应该是mouse=mouse,multitouch_on_demand 你错过了mouse, 部分吗? 我将输入条目编辑为 mouse=mouse,multitouch_on_demand 并重置 PyCharm。看起来它又开始工作了!非常感谢好先生! 【参考方案1】:

由于问题已在 cmets 中解决,因此发布作为提高可见性的答案。

确保为您的设备正确配置了 kivy 输入源,在 config.ini 文件中(<HOME_DIRECTORY>/.kivy/config.ini 参见 https://kivy.org/doc/stable/guide/config.html?highlight=config)是一个 [input] 部分。

在桌面上,您通常希望在本节中至少配置一个鼠标,最简单的实现方法是使用mouse=mouse 行,可选multitouch_on_demand 选项(即mouse=mouse,multitouch_on_demand)。

【讨论】:

以上是关于Kivy/KivyMD - 按钮没有反应的主要内容,如果未能解决你的问题,请参考以下文章

如何通过按下按钮 kivy/kivymd/python 在另一个窗口中创建按钮

Kivy (KivyMD) 中的按钮和小部件大小

Kivy/ Kivymd 地图切换屏幕

Kivymd 卡按钮功能

Kivy/KivyMD 应用程序在 venv 环境中运行良好,但在 exe 文件中崩溃

Kivy/KivyMD 应用程序在编译为 .apk 后在 Android 上崩溃