QT 實現QTableView中,雙擊彈出下拉框

2021-10-06 22:23:40 字數 1754 閱讀 8898

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...