2017-02-28 8 views
2

私はAndroidタブレットをターゲットにしたQt/QMLにiOSアプリを移植しています。Androidタブレットにマスター詳細ビューQt/QMLを実装する方法は?

このアプリの動作は、元のiOSバージョン(UISplitViewControllerに基づいています)に似ています。

つまり、私は風景モードでタブレットを使用してマスター詳細ビューを構築する必要があります。

ListViewでアイテムが選択されるたびに詳細ビューが動的に表示されるように、ListModelをマスタービューとして使用することを考えていました。

現時点では、基本についても正しく理解するために苦労しています。私の質問が広すぎると思われる場合は、事前に私を許してください。私はすぐに直面している障害のカップルです:

私がQMLで見たほとんどの例は、デバイスの画面サイズをハードコードしているようです。たとえば、Qtのクリエータにおける典型的なスケルトンプロジェクトは、次のコードから構成されます:ウィンドウの幅と高さのプロパティ上に示されているように

ApplicationWindow { 
    visible: true 
    width: 640 
    height: 480 
    title: qsTr("Hello World") 

     Page1 { 
     } 

} 
  • ハードコーディングされています。実際には、物理​​デバイスの画面サイズに応じてこれらの値を動的に設定する必要があります。どうすればこれを達成できますか?

  • また、画面上部(バッテリーの充電レベルが表示されている部分)にステータスバーの領域を残すために、アプリケーション画面のサイズを変更する必要があります。

これを達成する方法を示すオンラインドキュメントへのコードスニペットとポインタは非常に高く評価されます。

編集:アプリケーションウィンドウの幅、高さ及び位置をさらにすることができる

ApplicationWindow { 
    id: appWindow 
    visible: true 
    width: Screen.width 
    height: Screen.height 
    title: qsTr("Hello World") 

     Page1 { 
     } 

} 

:ここでは、デバイスの画面サイズを使用して、アプリケーションウィンドウのサイズを設定し、更新main.qml、ありますデバイスのステータスバー領域に重ならないようになっています。

しかし、私はまだレイアウトの向きに悩まされています。デフォルトは縦向きです。レイアウトの向きを横向きに変更するにはどうすればよいですか?ここで

+1

削除設定のサイズは明示的に、代わりにこれを設定してみてください:http://doc.qt.io/qt-5/qml-qtquick-window-window.html# visibility-prop – hyde

+0

また、ここに示す例を試してみましたか:http://doc.qt.io/qt-5/ qml-qtquick-controls-applicationwindow.html – hyde

答えて

2

は、私が使用するものです:

横向きの強制については
// in the main window 
    property bool desktop: { 
    switch (Qt.platform.os) { 
    case "android": 
    case "ios": 
    case "winphone": 
    case "winrt": 
     return false 
    default: return true 
    } 
    } 
    visibility: desktop ? Window.AutomaticVisibility : Window.Maximized 

、マニフェストでプロジェクトフォルダ/アンドロイド(ビルドディレクトリではないもの)でAndroidManifest.xmlファイルに以下を追加します - >アプリケーション - >アクティビティのプロパティセクション:ウィンドウの

android:screenOrientation="landscape" 
+0

私のプロジェクトを確認しましたが、AndroidManifest.xmlはありません。ビルドフォルダにAndroidManifest.xmlがありますが、各ビルドで上書きされます。私はQt Creator 4.2を使用しています。1 – BigONotation

+0

明らかに、マニフェスト・スタブを生成していないので、デフォルト・スタブを作成します。ビルドステップ - Android APKのビルドセクションには、プロジェクト作成 - アンドロイドキットの設定を行う必要があります。そこには「テンプレートの作成」ボタンがあります。これをクリックすると、プロジェクトフォルダに変更を加えるためのマニフェストが表示されます。 – dtech

+0

多くの感謝!それはうまくいった! :)あなたの答えを受け入れる – BigONotation

関連する問題