1. 程式人生 > >Qt類學習(一)

Qt類學習(一)

本節包括的類:

 

QStandardItemModel

類QabstractItemModel,QabstractListModel,QAbstractTableModel不儲存資料,使用者需要從這些類派生出子類,並在子類中定義某種資料結構來儲存資料。而類QStandardItemModel負責儲存資料,每個資料項表示為類QStandardItem的物件。

QStandardItem類用來儲存一個數據項,而QStandardItemModel類用於將這些QStandardItem物件用列表、表格、樹或者其他結構連線起來,以提供檢視顯示。

下面是一個例子:

    QStandardItemModel listModel;  
    QStandardItem *rootItem = listModel.invisibleRootItem();    //    行1
    for (int row = 0; row < 4; ++row){

        QStandardItem *item = new QStandardItem(QString("%1").arg(row) );    //    行2
        rootItem->appendRow( item );    //行3
    }
    QListView listView;
    listView.setModel ( & listModel );

行1獲取模型最頂層的根節點

行2建立一個QStandardItem物件,表示一個數據項

    QString("%1").arg(row);  //代表把row的值顯示成字串
    str = QString("%1 %L2 %L3")  //新增L代表取前幾位,如L2代表取前2位L
          .arg(12345)
          .arg(12345)
          .arg(12345, 0, 16);  //一個函式的過載,表示轉化為16進位制
      // str == "12345 12,345 3039"

行3將該資料項作為根節點的子節點新增到列表中。