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

我有這樣的QML,並且在顯示窗口時childWindow圖標不顯示在任務欄中。我的環境是Windows 7. 在CPP設置中,我認爲只需將父項childWindow設置爲0即可將兩個窗口設置爲頂層。如何在任務欄中顯示子窗口圖標

但是如何在QML中做到這一點?

回答

2

你可以做這樣的事情要做:

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 
    } 
} 

注意,當wnd1關閉(主/根窗口)第二個關閉onClosing句柄確保主窗口關閉時的正確或預期行爲。

1

如果您在QML這樣一個對象時,自動設置,你只可以使用parent -property改變視覺父

擁有它,否則,你可能會做下列之一:

  • 使用JS動態對象創建。
  • 加載多個QML檔案在C++

前者可以做如下:

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"))); 
相關問題