给定QTableWidgetItem,如何设置其column()返回值? 我尝试对包含Qif表WITGETETEM::CalnNo()的值的一些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的测试用例中测试此函数0,我需要创建两个QTableWidgetItem实例,一个为column()0,另一个为column()1 我尝试过将此作为一种可能的方法,使QTableWidgetItem::column()返回0,而不是其默认值-1:给定QTableWidgetItem,如何设置其column()返回值? 我尝试对包含Qif表WITGETETEM::CalnNo()的值的一些C++ QT代码进行单元测试,如下所示: void on_resultsTable_currentItemChanged(QTableWidgetItem* currentItem, QTableWidgetItem* previousItem) { if (currentItem != nullptr) { int column = currentItem->column(); if (column == 0) { // Column0SpecificBehavior(); } } },c++,qt,unit-testing,C++,Qt,Unit Testing,为了在column()==0和column()!=0的测试用例中测试此函数0,我需要创建两个QTableWidgetItem实例,一个为column()0,另一个为column()1 我尝试过将此作为一种可能的方法,使QTableWidgetItem::column()返回0,而不是其默认值-1: QTableWidget table; table.insertRow(0); QTableWidgetItem currentItem("Row0Column0"); table.setItem(0
QTableWidget table;
table.insertRow(0);
QTableWidgetItem currentItem("Row0Column0");
table.setItem(0, 0, ¤tItem);
但是上面的代码导致currentItem的column()仍然返回-1
关于如何设置QTableWidgetItem::column()的返回值,您有什么想法吗?我想您忘了在表中插入列。您的代码应该如下所示:
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
QTableWidget表;
表.插入行(0);
表.插入列(0);列();