qtableview顯示資料時,雙擊**預設情況下是顯示spin控制項,但很多情況下需要顯示combobox,這需要為tableview增加combox**
combox**標頭檔案**:
#pragma once
// comboboxdelegate.h
#include class combodelegate : public qitemdelegate
;
combox**cpp檔案**:
#include "combodelegate.h"
#include #include combodelegate::combodelegate(const qstringlist &items, qobject *parent) :
qitemdelegate(parent)
qwidget *combodelegate::createeditor(qwidget *parent, const qstyleoptionviewitem &, const qmodelindex &) const
void combodelegate::seteditordata(qwidget *editor, const qmodelindex &index) const
void combodelegate::setmodeldata(qwidget *editor, qabstractitemmodel *model, const qmodelindex &index) const
void combodelegate::updateeditorgeometry(qwidget *editor,const qstyleoptionviewitem &option, const qmodelindex &/* index */) const
之後,在tableview所在介面類中,為tableview增加qcombox**
qttable::qttable(qwidget *parent)
: qdialog(parent)
} ui.tableview->setmodel(pmodel);
ui.tableview->horizontalheader()->setsectionresizemode(qheaderview::stretch);
>verticalheader()->setsectionresizemode(qheaderview::stretch);
qstringlist strlist;
strlist << "1" << "2" << "3" << "4";
strlist << "5" << "6" << "7" << "8";
combodelegate *pcombobox = new combodelegate(strlist); // strlist中包含combobox中供選擇的資料
ui.tableview->setitemdelegateforcolumn(1,pcombobox);
connect(ui.tableview, signal(clicked(const qmodelindex &)), this, slot(ontableclicked(const qmodelindex &)));
connect(pcombobox, signal(currentindexchangesignal(int, int)), this, slot(onindexchangeslot(int, int)));
}
Qt中QTableView中加入Check列實現
class mymodel public qsqlquerymodel qt itemflags mymodel flags const qmodelindex index constqvariant mymodel data const qmodelindex index,int role con...
Qt中QTableView中加入Check列實現
qtableview qcheckbox列 核取方塊 qtableview中嵌入核取方塊checkbox 第二種方法 設定qabstracttablemodel的flags 函式法 通過delegate建立qcheckbox來實現的check列,只有在該列進入編輯模式時才能夠check unchec...
Qt設定樣式(qtableview)
1.在 特定位置插入樣式 this setstylesheet qpushbutton btn one,qpushbutton btn two qpushbutton hover 設定滑鼠移到按鈕上的樣式 qpushbutton pressed this為當前類 ui.widget setstyle...