我正在尝试对包含QTableWidgetItem :: column()值的if语句的一些C ++ Qt代码进行单元测试,如下所示:
void on_resultsTable_currentItemChanged(QTableWidgetItem* currentItem, QTableWidgetItem* previousItem)
{
if (currentItem != nullptr)
{
int column = currentItem->column();
if (column == 0)
{
// Column0SpecificBehavior();
}
}
}
为了测试column()== 0和column()!= 0的测试用例的这个函数,我需要创建两个QTableWidgetItem实例,一个用column()0,另一个用column()1。
我试过这个让QTableWidgetItem :: column()返回0而不是默认值为-1的可能方法:
QTableWidget table;
table.insertRow(0);
QTableWidgetItem currentItem("Row0Column0");
table.setItem(0, 0, ¤tItem);
但是上面的代码导致currentItem的column()仍然返回-1。
关于如何设置QTableWidgetItem :: column()的返回值的任何想法?
答案 0 :(得分:1)
我想您忘了在表格中插入一列。您的代码应如下所示:
QTableWidget table;
table.insertRow(0);
table.insertColumn(0); <--- missing line
QTableWidgetItem currentItem("Row0Column0");
table.setItem(0, 0, ¤tItem);
QTableWidgetItem *it = table.currentItem();
int column = it->column(); <--- this is the current column == 0