我在QTableView里面用設定DataModel和ItemDelegate的方法實作在QTableView行里面添加QCheckBox和QComboBox控制元件的功能,現在控制元件已經能夠添加,但每次新增了一行以后,已有行上控制元件的操作都會被復位,求教如何解決?
增加新行的相關代碼:
m_pModel2->AddFormula(1, 1, 0, false);
for (int i = 0;i < m_pModel2->rowCount();i ++)
{
ui.lvContainer->openPersistentEditor(m_pModel2->index(i, 0));
ui.lvContainer->openPersistentEditor(m_pModel2->index(i, 1));
ui.lvContainer->openPersistentEditor(m_pModel2->index(i, 2));
ui.lvContainer->openPersistentEditor(m_pModel2->index(i, 3));
}
AddFormula函式的實作:
void FormulaListModel::AddFormula(int op1, int op2, int op, bool isEnable)
{
beginResetModel();
PFORMULA pf = new FORMULA;
pf->op = op;
pf->op1 = op1;
pf->op2 = op2;
pf->isEnable = isEnable;
m_lsFormula << pf;
endResetModel();
}
附加說明:我要實作的是在QTableView里面實作一個計算公式編輯的功能,每次添加一個新公式,即產生一個新行,其中包括QCheckBox和3個QComboBox控制元件。
uj5u.com熱心網友回復:
控制元件的狀態保存在model里面了么?你把狀態保存到model里面,然后在itemdelegate里面通過讀取model里面的狀態資料再顯示控制元件,就好了呢轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/126709.html
標籤:Qt
