2017-05-05 12 views
-1

私はQTが新しく、ラズベリーパイとタッチ液晶ディスプレイのQTクイックアプリを開発したいと考えています。アプリにはいくつかの画面が必要です(申し訳ありませんが、適切な用語が何であるかわかりませんが、画面ではラズベリーの全画面を塗りつぶすアプリの状態を意味します)、これらの画面を切り替えるボタンが必要です。ボタンを押すと、別の画面にどのように切り替えることができますか?ラズベリーのQtQuickシンプルアプリ

私はローダーを使ってみましたが(今はラズベリーではなくデスクトップでテストしています)、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を使う方が簡単ですか? ラズベリーとデスクトップについて:アプリケーションはラズベリーで実行する必要がありますが、今はデスクトップで開発しています。私はちょうど私が持っていたローダーアプローチの1つの問題は、新しいウィンドウが開かれたということでしたので、それを言いましたが、ラズベリーでこれは異なる動作をするかもしれません。 – numberCruncher

+0

あなたの質問は広範であり、あなたの質問を改善するためには[SO](https://stackoverflow.com/help/mcve)を読んでください。 – eyllanesc

答えて

-1
私が推測するベンチャー企業です

トン帽子はラズベリーパイにQt5のeglfsモードを使いたいと思うでしょう。これは通常のデスクトップを取り除き、あなたのQt5(レギュラーまたはQML)アプリをフルスクリーンで実行します。これを最後にやったとき、Qt5を自分でコンパイルする必要がありました。これは、クロスコンパイルを試してみたい、またはRaspberryPi 3を使用することです(必要に応じて、結果を低速のRaspberry Pisにコピーできます)。私はガイドから働いたhttps://wiki.qt.io/RaspberryPi2EGLFS

タッチスクリーン付きラズベリーパイのLinuxデスクトップまたはフルスクリーンのウィンドウでプログラムを実行するのはかなり簡単でした(特別な7インチスクリーンまたは一般的な22インチタッチ表示)。

eglfsを使用するより新しい代替手段は、明らかにQtWayland Compositorです。私はそれを使用していませんが、最新の(2017)FOSDEMのフルスクリーン組み込みアプリケーション用に興味深いプレゼンテーションがあります:https://fosdem.org/2017/schedule/event/device_specific_compositors/

関連する問題