2017-03-03 22 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

相關問題