model模型中 要實現的幾個方法

2021-07-05 12:29:08 字數 2436 閱讀 7884

qabstractitemmodel類的子類,經常需要實現的幾個方法

when subclassing qabstractitemmodel, at the very least you must implement index(), parent(), rowcount(), columncount(), and data().

the model is a ****** table of rows and columns.each item has a unique index specified by a qmodelindex.

you can obtain this model index using the index( int nrow,int ncolumn, qmodelindex *parent=0 ) function

用index()函式獲取qmodelindex模型索引。 1.

flags()方法。

//flags()方法的,判斷使用的是qmodelindex類的column()方法,根據列進行判斷。

qt::itemflags  tradetablemodel::flags ( const qmodelindex & index ) const

}break;

return flags;}2.

index()方法

//根據行和列,建立qmodelindex模型索引,

//在model中,qmodelindex才是訪問資料的 唯一標識

qmodelindex  tradetablemodel::index ( int row, int column, const qmodelindex & parent/* = qmodelindex() */) const

return createindex(row, column);//qabstractitemmodel類的方法 createindex(),根據行列,建立qmodelindex。}3.

data()方法

//返回index模型索引處的資料,根據角色不同,獲取不同的資料。

//返回給個角色的值        

qvariant  tradetablemodel::data ( const qmodelindex & index, int role /*= qt::displayrole*/ ) const

switch(role)

break;

4.setdata()方法

//設定model中的資料,

bool tradetablemodel::setdata ( const qmodelindex & index, const qvariant & value, int role/* = qt::editrole */)

5.headdata()方法

qheaderview標題類使用的資料,就是有model中的方法headerdata()提供的。

即列的名字。

//返回列的內容,即**顯示的列名字

qvariant tradetablemodel::headerdata ( int section, qt::orientation orientation, int role/* = qt::displayrole*/ ) const

else if(role == qt::userrole)

}return qabstractitemmodel::headerdata(section, orientation, role);}6.

int tradetablemodel::columncount ( const qmodelindex & parent/* = qmodelindex() */) const

7.int tradetablemodel::rowcount ( const qmodelindex & parent/* = qmodelindex()*/ ) const

8.qmodelindex  tradetablemodel::parent ( const qmodelindex & index ) const

9.qvariant    headdata( int section,qt::orientation orientation, int role=qt::displayrole )

//該方法,主要是返回列名稱,

//也可以返回列的序號,

//section:列序號,即第幾列

//orientation:水平還是垂直

//role:角色

qvariant tradetablemodel::headerdata ( int section, qt::orientation orientation, int role/* = qt::displayrole*/ ) const

else if(role == qt::userrole)

}return qabstractitemmodel::headerdata(section, orientation, role);

}

JS中all Collection 的幾個方法

1.length屬性 返回集合中元素的個數。2.item vindex isubindex 方法 一 如果只有乙個引數 引數為整型 1 如果引數是整數,根據索引返回子元素 2 如果引數是字串,根據name或者id返回乙個集合或者子元素 二 如果有兩個引數 第乙個引數為字串,第二個引數為整型 1 第乙...

python中執行shell命令的幾個方法

這篇文章主要介紹了python中執行shell命令的幾個方法,本文一共給出3種方法實現執行shell命令,需要的朋友可以參考下 最近有個需求就是頁面上執行shell命令,第一想到的就是os.system,如下 os.system cat proc cpuinfo 但是發現頁面上列印的命令執行結果 0...

python中執行shell命令的幾個方法小結

最近有個需求就是頁面上執行shell命令,第一想到的就是os.system,複製 如下 os.system cat proc cpuinfo 但是發現頁面上列印的命令執行結果 0或者1,當然不滿足需求了。嘗試第二種方案 os.popen 複製 如下 output os.popen cat proc ...