我想开始学习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()
<Widget1>
Button:
text: "Please click here"
Label:
text: "Button has not been clicked yet"
如果所有代码都能正常运行,则运行后应该返回拆分为两个的Box Layout。一部分是可单击的按钮,上面写有“请单击此处”,另一部分只是一个标签,上面写有“尚未单击按钮”。但是现在,当我运行时,它只会返回一个空的Box Layout(没有标签,没有按钮,没有文本)。
答案 0 :(得分:0)
Box布局代码(
<Widget1>
)仍然无效。
由于您没有使用Kivy Builder来加载kv代码/文件,因此,您将按照名称约定来加载kv代码/文件。确保您的kv文件名是my.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)
在您的kv文件中,在类规则:
后添加<Widget1>
(全冒号)
<Widget1>:
Kv来源由规则组成,用于描述 窗口小部件的内容,您可以有一个根规则,并且可以有任意数量的 类或模板规则。
根规则 是通过声明根类来声明的 小部件,没有任何缩进,后跟:,并将其设置为 应用实例的根属性:
Widget:
类规则 ,由<>之间的小部件类的名称声明 然后是:,定义该类的任何实例将如何 图形表示:
<MyWidget>:
规则使用缩进定界,例如python,缩进应 每个级别应有四个空格,例如python的最佳作法 建议。
但是,当我编写代码来设计小部件(在这种情况下为Box Layout)时, Pycharm用红色下划线标出,并且不执行代码。
您必须安装KV语言自动完成文件。