簡體   English   中英

QtQuick 1.1浮動矩形

[英]QtQuick 1.1 Floating Rectangles

我在嵌入式Linux Plattform上使用QtQuick 1.1和Qt 4.8。 我有某種桌面,其中動態創建的矩形排列在網格中-該網格位於Flickable內部。

Flickable{
  anchors.fill: parent
  contentHeight: homegrid.height
  flickableDirection: Flickable.VerticalFlick
  clip:true
  Grid{
     anchors.left: parent.left
     anchors.top: parent.top
     columns: 4
     flow: GridView.LeftToRight
     id: homegrid
     //new items get pushed to this grid
  }
}

看起來像這樣:

在此處輸入圖片說明

當我再創建2個項目時,我將它們推到網格的末端,如下所示:

在此處輸入圖片說明

泰銖是我目前的狀態。 但是現在我需要在此網格中獲得類別,並且我需要能夠將新項目推送到每個類別。 應該看起來像:

在此處輸入圖片說明

在紅色類別中添加了兩項之后:

在此處輸入圖片說明

如何將容器排列在網格中,使容器在每一行的末尾自動斷開?

解:

  1. 使用GridView

GridView{ model: myDesktopModel delegate: HomeLinkeDelegate { id: homeLinkDelegate } }

  1. 在C ++中定義列表

QList<QObject*> objectList;

列表可以排序(按顏色)。

  1. 注冊清單

viewer->rootContext()->setContextProperty("myDesktopModel",QVariant::fromValue(this->objectList));

修改列表后,必須重新注冊-刷新GridView。

有關GridView的更多信息: http : //doc.qt.io/qt-4.8/qml-gridview.html#model-prop

有關基於QObjectList的模型的詳細信息http://doc.qt.io/qt-4.8/qdeclarativemodels.html#qobjectlist-based-model

據我所知,您不能從QML中選擇項目在Grid的位置。 您最好使用GridView並創建自己的自定義QAbstractItemModel以便可以選擇在模型中的正確索引處插入項目。 或者,如@GrecKo所述,使用ListModel並調用insert()函數。

如果最終選擇了QAbstractItemModel方法,請參閱將C ++模型與Qt快速視圖一起使用以獲取更多信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM