如何在Pycharm中使用Kivy(1.10.1)解释器(社区版2018.3.5)

时间:2019-03-29 04:44:35

标签: python-3.x pycharm kivy kivy-language

我想开始学习Kivy。我一直在将Pycharm用作Python编程的IDE。如何将默认的python解释器更改为kivy解释器,以便pycharm可以识别kivy代码?

我已经安装kivy.app并创建了符号链接。我还使用pip安装了kivy。在我的python程序中,我已经能够从kivy.app成功导入App,并且可以正常工作。但是,当我编写代码来设计小部件(在本例中为“盒式布局”)时,Pycharm用红色下划线标记并且不执行代码。

以下代码可以正常工作:

from kivy.app import App
from kivy.uix.boxlayout import BoxLayout

class Widget1(BoxLayout):
    pass

class MyApp(App):
    def build(self):
        return Widget1()

if __name__ == "__main__":
    MyApp().run()

但是当我编写以下代码来设计Box Layout时,它不起作用。 Pycharm强调:Widget1,按钮,文本和标签(写的错误是:未解决的参考)

<Widget1>
    Button:
        text: "Please click here"
    Label:
        text: "Button has not been clicked yet"

如果所有代码都能正常运行,则运行后应该返回拆分为两个的Box Layout。一部分是可单击的按钮,上面写有“请单击此处”,另一部分只是一个标签,上面写有“尚未单击按钮”。但是现在,当我运行时,它只会返回一个空的Box Layout(没有标签,没有按钮,没有文本)。

1 个答案:

答案 0 :(得分:0)

问题2

  

Box布局代码(<Widget1>)仍然无效。

解决方案

1)kv文件名

由于您没有使用Kivy Builder来加载kv代码/文件,因此,您将按照名称约定来加载kv代码/文件。确保您的kv文件名是my.kv

Kv language » How to load KV

  

有两种方法可以将Kv代码加载到您的应用程序中:

     

按名称惯例:

     

Kivy在以下位置查找与您的App类同名的Kv文件   小写字母,如果以“ App”结尾则减去“ App”,例如:

MyApp -> my.kv
     

如果此文件定义了Root Widget,它将被附加到应用程序的   根属性,并用作应用程序小部件树的基础。

     

按照构建器约定: 。您可以告诉Kivy直接加载字符串或文件。如果此字符串或文件定义了根窗口小部件,则它   将通过以下方法返回:

Builder.load_file('path/to/file.kv')
     

或:

Builder.load_string(kv_string)

2)kv规则上下文

在您的kv文件中,在类规则:后添加<Widget1>(全冒号)

摘要

<Widget1>:

Kv language » Rule Context

  

Kv来源由规则组成,用于描述   窗口小部件的内容,您可以有一个根规则,并且可以有任意数量的   类或模板规则

     

根规则 是通过声明根类来声明的   小部件,没有任何缩进,后跟:,并将其设置为   应用实例的根属性:

Widget:
     

类规则 ,由<>之间的小部件类的名称声明   然后是:,定义该类的任何实例将如何   图形表示:

<MyWidget>:
     

规则使用缩进定界,例如python,缩进应   每个级别应有四个空格,例如python的最佳作法   建议。

问题1

  

但是,当我编写代码来设计小部件(在这种情况下为Box Layout)时,   Pycharm用红色下划线标出,并且不执行代码。

解决方案

您必须安装KV语言自动完成文件。

  1. 下载此文件PyCharm_kv_completion.jar
  2. 在PyCharm的“欢迎”窗口的右下角,单击“ 配置->导入设置”
  3. 选择您刚刚下载的jar文件,PyCharm将显示​​一个对话框,其中勾选了文件类型。单击确定。
  4. 重新启动PyCharm以使更改生效。