我有一个QTableWidget
可以通过按下按钮添加行的方法。问题是我有_table->setSortingEnabled(true);
,当我插入新行时,我不知道它在哪里。因为由于我已将表格设置为可排序,所以当我添加一行时,该行将移动到它的位置(取决于对哪一列进行排序)。那我怎么知道是哪一个呢?
一列(名称)按字母顺序排序的示例:
Name |
------
abc
toto
zozo
如果我现在添加如下一行:
int newRow = _table->rowCount();
_table->insertRow(newRow);
QTableWidgetItem *item1 = new QTableWidgetItem;
item1->setText("boom");
_table->setItem(newRow, 0, item1);
该行将介于“abc”和“toto”之间。
Name |
------
abc
<<< boom
toto
zozo
在这里它会正常工作,但我有多个列,如果现在我尝试例如:
QTableWidgetItem *item2 = new QTableWidgetItem;
item1->setText("45");
_table->setItem(newRow, 1, item2);
会改变的值是“zozo”第二列的值,而不是我想要的“boom”。
我试图用一个例子来解释这个问题,我希望它有所帮助。那么如何添加一个新行,如果我在我的QTableWidget
?
编辑:来自非爆炸性的回答(在评论中):
只需要对第二个进行如下操作QWidgetItem
:
QTableWidgetItem *item2 = new QTableWidgetItem;
item1->setText("45");
_table->setItem(item1->row(), 1, item2); // change newRow by item1->row()