2016-11-08 59 views
1

我在QML中有一個小應用程序,它可以在我的Linux機器上正常工作。但是,當我嘗試在Raspberry Pi上運行它時,它會顯示一個內部只有空白區域的窗口。在左上角還有文本項的一部分 - 類似最後3個字符。RaspberryPi上的QML - 變白屏

我發現的各種主題都提到缺少QML文件,但我的文件與可執行文件位於同一目錄中。當我嘗試移動它們時,至少會遇到一個無法找到的錯誤。

另一件事是,當我運行應用程序時,CPU使用率上升到300%。

在我的筆記本電腦上,我有Qt 5.6.1,在RPi 5.3.2上。我正在使用Raspbian存儲庫的庫編譯RPi上的應用程序。

不知道是否有關,但也有一個警告:
libEGL warning: DRI2: failed to authenticate

我也試過export QML_IMPORT_TRACE=1,看看有什麼QML文件加載,一切看起來是正確的。

加載在main.cpp中的QML文件看起來像這樣:

QQmlApplicationEngine engine; 
engine.load("qml/MainWindow.qml"); 

我也試過用QRC,具有相同的結果。而使用QQuickView而不是QQmlApplicationEngine導致了同樣的情況。

可能是什麼問題?或者我可以在哪裏搜索更多信息?

編輯:

我嘗試了QML例子(文本編輯),使用相同的工具,我的應用程序建立。該示例沒有任何問題,所以問題必須在我的代碼中。

+0

當我的應用程序錯過了QML系統文件夾,即QtQml,QtQuick,QtQuick.2時,我的錯誤類似於你的錯誤。 – folibis

+0

@folibis不可能是問題,QML_IMPORT_TRACE = 1我收到如下消息: QQmlImports(file:///home/pi/wamenu/qml/MainWindow.qml):: importExtension:loaded「/ usr/lib/arm-linux-gnueabihf/qt5/qml/QtQuick.2/qmldir「,它看起來像從系統路徑加載正確的QML文件。 –

回答

0

對於任何可能遇到相同問題的人。

的問題是在制定基於窗口的尺寸,這樣的:

Rectagle { 
    width: Window.width 
} 

更改爲:

Rectagle { 
    width: mainWindow.width 
} 

mainWindow是在主QML文件的窗口項的ID。

不知道爲什麼這個工作在Linux PC上,而不是在Raspbian上。