????????????????????????
????????????????????????????????
一、“使用視圖”一般的步驟:
//1.創(chuàng)建?模型(這里是數(shù)據(jù)模型!) tabModel=new QSqlTableModel(this,DB);//數(shù)據(jù)表
//2.設(shè)置?視圖的模型(這里是數(shù)據(jù)模型!) ui->tableView->setModel(tabModel);
模型種類:
QStringListModel:存儲QString項目的列表模型;
QStandardItemModel:列表\表格\數(shù)模型;
QFileSystemModel:本地文件系統(tǒng)中的文件和目錄模型;
QSqlQueryModel、 QSqlTableModel、 QSqlRelationalTableModel:數(shù)據(jù)庫相關(guān)模型;
QItemSelectionMode:選擇模型;
二、然而,正常情況下:“視圖”都需要進(jìn)行“選擇”操作(當(dāng)前項切換、當(dāng)前行切換、選擇行變化時=> 要使用“選擇模型”對象 發(fā)送信號)。因此,引入了“選擇模型”!
//2.創(chuàng)建 選擇模型 theSelection=new QItemSelectionModel(tabModel);
//3.設(shè)置視圖的“選擇模型” ui->tableView->setSelectionModel(theSelection);
//4.選擇行變化時,theSelection發(fā)送currentRowChanged信號
connect(theSelection, SIGNAL(currentRowChanged(QModelIndex,QModelIndex)),
??????????? this,SLOT(on_currentRowChanged(QModelIndex,QModelIndex)));
三、注意:
當(dāng)既有“數(shù)據(jù)模型”,又有“選擇模型”的時候。設(shè)置“模型”setModel,必須放到 設(shè)置“選擇模型”setSelectionModel函數(shù)“之前”!
=》因為setModel函數(shù)會刪除之前設(shè)置的“選擇模型”!
1.ui->tableView->setModel(tabModel);//設(shè)置視圖的 數(shù)據(jù)模型文章來源:http://www.zghlxwxcb.cn/news/detail-813913.html
2.ui->tableView->setSelectionModel(theSelection); //設(shè)置視圖的 選擇模型文章來源地址http://www.zghlxwxcb.cn/news/detail-813913.html
到了這里,關(guān)于模型\視圖一般步驟:為什么經(jīng)常要用“選擇模型”QItemSelectionModel?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!