我想开始学习Kivy。我一直在使用Pycharm作为我的Python编程IDE。如何将默认的python解释器更改为kivy解释器,以便pycharm可以识别kivy代码?
我已经安装了kivy.app并创建了符号链接。我也用pip安装了kivy。在我的python程序中,我已经能够从kivy.app成功导入App并且它可以工作。但是当我编写代码来设计一个小部件(在本例中是一个Box布局)时,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()
<Widget1>
Button:
text: "Please click here"
Label:
text: "Button has not been clicked yet"
如果所有代码都有效,那么在运行之后,它应该将Box Layout分成两部分。一部分是可点击的按钮,上面写着“请点击这里”,另一部分只是一个标有“按钮尚未点击”的标签。但是现在当我跑步时,它只返回一个空的Box布局(没有标签,没有按钮,没有文字)。
Box Layout代码(
<Widget1>
)仍然不起作用。
由于您没有使用Kivy Builder加载您的kv代码/文件,因此您按名称约定加载kv代码/文件。确保您的kv文件名是my.kv
有两种方法可以将Kv代码加载到您的应用程序中:
按名称惯例:
Kivy以小写形式查找与App类同名的Kv文件,如果以“App”结尾,则减去“App”,例如:
MyApp -> my.kv
如果此文件定义了Root Widget,它将附加到App的root属性,并用作应用程序窗口小部件树的基础。
按构建器约定:您可以告诉Kivy直接加载字符串或文件。如果此字符串或文件定义了根窗口小部件,则该方法将返回该窗口小部件:
Builder.load_file('path/to/file.kv')
要么:
Builder.load_string(kv_string)
在你的kv文件中,在类规则:
之后添加<Widget1>
(完整冒号)
<Widget1>:
Kv源构成规则,用于描述Widget的内容,您可以有一个根规则,以及任意数量的类或模板规则。
通过声明根小部件的类来声明根规则,没有任何缩进,后跟:并将被设置为App实例的根属性:
Widget:
一个类规则,由<>之后的小部件类的名称声明,后跟:,定义如何以图形方式表示该类的任何实例:
<MyWidget>:
规则使用缩进进行分隔,因为python,每个级别的缩进应该是四个空格,就像python良好实践建议一样。
但是当我编写代码来设计一个小部件(在本例中是一个Box布局)时,Pycharm以红色下划线并且不执行代码。
您必须安装KV语言自动完成文件。