2016-12-06 30 views
2
Window { 
    Window { 
     id: childWindow 
    } 
} 

このようなQMLがあり、ウィンドウが表示されているときにはchildWindowアイコンがタスクバーに表示されません。私の環境はWindows 7です。 CPP設定では、childWindowの親を0に設定すると、両方のウィンドウをトップレベルにすることで十分です。タスクバーに子ウィンドウのアイコンを表示する方法

しかし、それをQMLでどうやって行うのですか?

答えて

2

にそのような何かを追加することによって行うことができます。wnd1は(メイン/ルートウィンドウ)閉じていることを

Item 
{ 
    Window 
    { 
     id: wnd1 
     width: 200 
     height: 200 
     title: "Window1" 
     visible: true 
     onClosing: wnd2.close(); 
    } 

    Window 
    { 
     id: wnd2 
     width: 200 
     height: 200 
     title: "Window2" 
     visible: true 
    } 
} 

注意をもう1つは、メインウィンドウを閉じる際の正しい動作または期待される動作を保証するために、閉じたonClosingハンドルを取得します。

1

あなたは、このようなQMLでオブジェクトを作成する場合は、が自動的に設定され、そしてあなただけparent -propertyを使用してビジュアル親を変更することができます。

では、次のいずれかを行う可能性があり、そうでない場合はそれを持ってするには、次の

  • 使用JS動的オブジェクトの作成を。
  • C++でのロード複数のQML-ファイル

次のように前者は行うことができます。

property Window mySecondWindow: secondWindowComponent.createObject(null) 
Component { 
    id: secondWindowComponent 
    Window { 
     ... 
    } 
} 

mySecondWindow.destroy()を呼び出し、これを破壊します。参照のみを削除すると、JS GCが最終的にそれを処理します。それが失敗しなければ。

後者はあなたがそのような何かを行うことができますmain.cpp

engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 
engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 
engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); 
関連する問題