2017-05-05 42 views
-1

我是QT的新手,並且希望爲樹莓派及其觸摸液晶顯示器開發QT Quick應用程序。該應用程序應該有幾個屏幕(對不起,不知道什麼是正確的術語,屏幕我的意思是填充樹莓派的整個顯示的應用程序的狀態),應該有按鈕來切換這些屏幕。當我按下按鈕時,如何切換到不同的屏幕?QtQuick樹莓簡單應用程序

我試過使用loader但是(現在我在桌面上測試而不是覆盆子)它在新窗口中打開qml文件,但我想要替換原始窗口的內容。

編輯: 是的,我計劃使用EGLFS。我附上一些原則上我想要的代碼。不過,我不知道這是做事情的正確方法:我把我想有到自己的QML文件,並通過我們的按鈕鼠標領域切換自己的知名度屏幕:

main.qml

import QtQuick 2.7 
import QtQuick.Controls 2.0 
import QtQuick.Layouts 1.0 

ApplicationWindow { 
    visible: true 
    width: 800 
    height: 460 
    title: qsTr("Hello World") 

    Page1 { 
     id: page1 
     visible: true 
    } 

    Page2 { 
     id: page2 
     visible: false 
    } 

} 

Page1.qml

import QtQuick 2.7 
import QtQuick.Controls 2.0 

Item { 
     Button { 
      id: button1 
      width: 200 
      height: 40 
      text: qsTr("To second page") 
      onClicked: { 
       page2.visible=true 
       page1.visible=false 
      } 
     } 
} 

Page2.qml

import QtQuick 2.3 
import QtQuick.Window 2.2 

Item { 
    Text { 
     id: text1 
     x: 181 
     y: 153 
     text: qsTr("Second Page") 
     font.pixelSize: 12 
    } 

    Rectangle { 
     id: rectangle 
     x: 252 
     y: 222 
     width: 200 
     height: 200 
     color: "#000000" 
     border.color: "#f12525" 
    } 

    MouseArea { 
     id: mouseArea 
     x: 234 
     y: 209 
     width: 244 
     height: 225 
     onClicked:{ 
      page1.visible=true 
      page2.visible=false 
     } 
    } 
} 
+0

您可以顯示您的代碼,也請在您的問題中精確,首先在桌面之後談論樹莓,在兩者中考慮qt的版本,通常它可以工作,但對於版本問題,您不會擁有樹莓中的所有組件。 – eyllanesc

+0

我沒有發佈代碼,因爲我現在失去了採取哪種方法。使用快速控制有像StackView這樣的東西,這是適當的嗎?或者更容易使用Loader或States? 關於樹莓和桌面:最終,應用程序應運行在樹莓上,但現在我正在桌面上開發。我剛剛提到它,因爲我使用的加載器方法存在的一個問題是打開了新窗口,但在樹莓上這可能會有不同的表現。 – numberCruncher

+0

你的問題是廣泛的,這是脫離主題,閱讀[this](https://stackoverflow.com/help/mcve)來改善你的問題。 – eyllanesc

回答

-1

我冒昧猜測ŧ最有可能你想在樹莓派上使用Qt5的eglfs模式。這擺脫了正常的桌面,並全屏運行Qt5(常規或QML)應用程序。當我上一次這樣做時,我需要自己編譯Qt5。你可能想要弄清楚交叉編譯,或者使用RaspberryPi 3(如果需要,可以將結果複製到較慢的樹莓派)。我從指南工作https://wiki.qt.io/RaspberryPi2EGLFS

這是非常微不足道的是運行該程序,然後在Linux桌面上的窗口或Raspberry Pi觸摸屏上的全屏幕(特殊7「屏幕或通用22」觸摸顯示)。

使用eglfs的更新外觀顯然是QtWayland Compositor。我沒有使用它,但有一個有趣的演示,用於從最近(2017)FOSDEM的全屏幕嵌入式應用程序,可在此處獲得:https://fosdem.org/2017/schedule/event/device_specific_compositors/