[英]Prevent QML window from appearing before all the QML content is available
[英]Anchor QML element to window
我是QML的新手,我正在努力在QML中定義基本布局。 如何將元素錨定到窗口,以便在用戶調整窗口大小時調整大小? 我想添加一個填充窗口中所有可用空間的Rectangle,但是我還沒有找到從qml文件中執行此操作的方法。 到目前為止我找到的所有示例都使用了固定寬度和高度,但這意味着當窗口大小發生變化時,元素將保持其預設大小。
針對您的具體問題:
加入它。 無論何時需要進行這種重新調整,都需要從一方通知另一方關於幾何變化的信息。 我的意思是,從qml到C ++或從C ++到qml。
要告訴qml有關在頂部窗口中調整大小的信息:
qml中的頂級父元素不會獲得有關調整窗口小部件大小的任何信號。 你需要手動完成。
要獲取頂部窗口小部件實際調整大小的信息,您需要實現resizeEvent函數。
每當你的實現被調用時,你需要向qml方面發出一些調整大小已經發生的信號,因此top qml parent也應該自己調整大小。
告訴C ++在top qml元素中調整大小:
同樣,C ++中的小部件也不會獲得有關調整頂級qml元素大小的任何信號。 你需要手動完成:
對此的簡單回答是使用
Item {
anchors.fill: parent
}
這是平等的
Item {
anchors {
top: parent.top
left: parent.left
right: parent.right
bottom: parent.bottom
}
}
其中parent是您希望項目錨定在其中的對象。 雖然這通常是父母,但它在技術上可以固定在任何東西上。
我想補充一點,通常你會靜態調整頂級元素的大小,因為使用qml應用程序中的默認選項,應用程序窗口的大小將達到主qml文件中根元素的大小。 如果你想做一些比較棘手的事情,你需要修改為你的應用程序生成QDeclarativeView的C ++。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.