Qt數(shù)據(jù)庫(kù)編程中QTableView使用方法
Qt 數(shù)據(jù)庫(kù)編程中QTableView使用方法是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)QT中數(shù)據(jù)庫(kù)關(guān)于QTableView的使用,具體來看本文詳解。
QTableView是QT中用來把數(shù)據(jù)集以表格形式提供給用戶的一個(gè)控件,它與C++Builder中的DBGrid作用類似。坦白的說,DBGrid的使用要比QTableView更容易一些。但QTableView在使用麻煩的同時(shí),也提供了更多的靈活性。
在一個(gè)藥品劃價(jià)模塊中有這樣的操作流程:
檢索處方項(xiàng)目成功后,把該項(xiàng)目顯示到QTableView里,把需要編輯的數(shù)量字段提供給用戶輸入,用戶輸入確認(rèn)后,該項(xiàng)目留在列表中,然后開始下一項(xiàng)目檢索錄入。
實(shí)現(xiàn)過程如下:
錄入的項(xiàng)目保留在臨時(shí)表tmp中,界面上的QTableView取名為tbList,與tbList關(guān)聯(lián)的Model取名為tb1。檢索成功后,把檢索結(jié)果插入到臨時(shí)表中,把需要編輯的字段提供給用戶。
- tb1=newQSqlTableModel(this,*dbR);//dbR是本應(yīng)用中的數(shù)據(jù)源
- tb1->setTable("tmp");//處方臨時(shí)表
程序中需要顯示的時(shí)候,
- tbList->setModel(NULL);//清除原先數(shù)據(jù)集
- tbList->setModel(tb1);//刷新顯示
程序中需要提供編輯輸入的時(shí)候
- QModelIndexmdidx=m_ui->tbList->model()->index(row,column);//獲得需要編輯的單元格的位置
- m_ui->tbList->setFocus();//把輸入焦點(diǎn)交給tbList
- m_ui->tbList->setCurrentIndex(mdidx);//設(shè)定需要編輯的單元格
- m_ui->tbList->edit(mdidx);//開始編輯
有一個(gè)問題需要注意。向QTableView中添加記錄時(shí),字段一定要完整,不能有空白字段,否則結(jié)果無法保存。切記。
如果需要對(duì)用戶輸入做限制,比如只能在指定的字段輸入指定的數(shù)據(jù)類型,可以通過QItemDelegate來實(shí)現(xiàn)。
小結(jié):Qt數(shù)據(jù)庫(kù)編程中QTableView使用方法的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!