2017-03-03 54 views
0

我正在尝试进行一些跨平台测试。下面是一个用于Windows的工作代码:在Windows中使用Kivy代码但在Linux环境中使用空白屏幕

main.py

#!/usr/bin/kivy 
import kivy 
kivy.require('1.0.6') 

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

class MatrixCalcLayout(BoxLayout): 
    pass 

class ConfusionMatrixCalc_v3App(App): 
    def build(self): 
     return MatrixCalcLayout() 

if __name__=='__main__': 
    ConfusionMatrixCalc_v3App().run() 

ConfusionMatrixCalc_v3.kv

#:kivy 1.0 
#:import kivy kivy 

<MatrixCalcLayout>: 
    orientation: 'vertical' 
    BoxLayout: 
     Button: 
    BoxLayout: 
     Button: 
    BoxLayout: 
     Button: 

当我尝试在Ubuntu上运行它,它不会加载和显示kivy帆布,但它只是一个空白(黑色)屏幕,就好像它没有链接到.k​​v文件一样。

编辑:更正了.kv文件名

回答

1

根据kivy docs

Kivy寻找Kv文件

你可以调用run()

if __name__=='__main__': 
    ConfusionMatrixCalc_v3App(kv_file="ConfusionMatrixCalc.kv").run() 
当.kv文件更改为 confusionmatrixcalc_v3.kv或明确规定的:具有相同的名称为小写的App类,减去“应用”,如果它与“应用”如结束
+0

谢谢,我的道歉,kv文件名确实是ConfusionMatrixCalc_v3,我原来的文章的命名是一个错字。它仍然不能在Linux上工作。 – KubiK888

+0

我正在使用linux,并将.kv文件更改为'confusionmatrixcalc_v3.kv'(注意它全部为小写)正在工作。 .kv文件与.py文件位于同一文件夹中吗?另外,你如何运行你的脚本? – ODiogoSilva

+0

现在有效。谢谢。 – KubiK888

1

您需要eiter与生成器加载KV文件:

Builder.load_file("ConfusionMatrixCalc.kv") 

或更改App类的名字从ConfusionMatrixCalc_v3AppConfusionMatrixCalcApp

+0

我的歉意,我的.kv文件名实际上是“ConfusionMatrixCalc_v3.kv”,我已经更正了原始文章的命名。问题依然存在,它在Windows中工作,不适用于Linux。 – KubiK888

+0

我也尝试过你的load_file方法,但它确实使它在Linux上工作,在我使用buildozer将它编译为.apk后,它会中断。这就是为什么我试图在没有load_file方法的情况下做到这一点。 – KubiK888