qt:
:itemflags flags
(const qmodelindex &index)
const override;
bool setdata
(const qmodelindex &index,
const qvariant &value,
int role) override;
在stringlistmodel.cpp中新增:
qt:
:itemflags mystringlistmodel:
:flags
(const qmodelindex &index)
const
bool mystringlistmodel:
:setdata
(const qmodelindex &index,
const qvariant &value,
int role)
return false;
}
這裡還是貼出全部**:
stringlistmodel.h
#ifndef stringlistmodel_h
#define stringlistmodel_h
#include
#include
class mystringlistmodel : public qabstractlistmodel
; explicit mystringlistmodel
(qobject *parent = nullptr)
;int
rowcount
(const qmodelindex &parent =
qmodelindex()
)const override;
qvariant data
(const qmodelindex &index,
int role = descriptionrole)
const override;
virtual qhash<
int, qbytearray>
rolenames()
const override;
qt::itemflags flags
(const qmodelindex &index)
const override;
bool setdata
(const qmodelindex &index,
const qvariant &value,
int role) override;
private:
qstringlist stringlist;};
#endif
// stringlistmodel_h
stringlistmodel.cpp檔案:
#include
"stringlistmodel.h"
mystringlistmodel:
:mystringlistmodel
(qobject *parent)
int mystringlistmodel:
:rowcount
(const qmodelindex &
)const
qvariant mystringlistmodel:
:data
(const qmodelindex &index,
int role)
const
qhash<
int, qbytearray> mystringlistmodel:
:rolenames()
const
qt::itemflags mystringlistmodel:
:flags
(const qmodelindex &index)
const
bool mystringlistmodel:
:setdata
(const qmodelindex &index,
const qvariant &value,
int role)
return false;
}
main.cpp檔案:
#include
#include
#include
"stringlistmodel.h"
intmain
(int argc,
char
*ar**)
main.qml檔案:
import qtquick 2.9
import qtquick.window 2.2
import regstringlistmodel 1.0
import qtquick.layouts 1.3
import qtquick.controls 2.0
window
delegate: rowlayout
layout.fillwidth : true
}}}}}
執行效果:
在console.log的輸出中可以看到model的資料是有改變的。
qml中嵌入c 物件
main.cpp 設定qml屬性和視窗屬性 include include include include int main int argc,char argv include include include class qobject 可以使用q invokable的public函式或者publ...
C 和QML混合程式設計 下 C 中呼叫QML
c 中呼叫qml,主要通過呼叫qml物件成員,方法以及與qml訊號關聯 item 為了能夠在c 中訪問qml定義的成員變數somevalue,可以使用qqmlproperty的read 和write qobject setproperty 和qobject property 在main.cpp中 q...
QML中的布局管理
qml中的布局管理 1 定位器 column,row,grid,flow1 columncolumn項用來垂直排列專案並使它們不會重疊。import qtquick2.3columnrectanglerectangle 2 rowrow項用來水平排列專案並使他們不會重疊。3 gridgrid項用來定...