QTableWidget::row()行为不符合预期
QTableWidget::row() not behaving as expected
当使用指向有效垂直标头项的指针调用QTableWidget::row( const QTableWidgetItem * item )
时,该函数返回-1
。但我没有想到这一点,因为我通过调用QTableWidget::setVerticalHeaderItem ( int row, QTableWidgetItem * item )
显式地将表小部件中行的垂直标题项设置为指针指向的项。
示例代码:
qint32 newRow = ui->tableWidget->rowCount();
ui->tableWidget->insertRow( newRow );
QTableWidgetItem *vertHeadItem = new QTableWidgetItem( "Row Header" );
ui->tableWidget->setVerticalHeaderItem( newRow, vertHeadItem );
/* these two outputs print the same address, as expected */
// output is 0xb855b90
qDebug() << vertHeadItem;
// output is 0xb855b90
qDebug() << ui->tableWidget->verticalHeaderItem( newRow );
/* These two outputs are not the same, but I would expect them to be */
// output is "4"
qDebug() << newRow; // this is the row that contains the verticalHeaderItem
// output is "-1"
qDebug() << ui->tableWidget->row( ui->tableWidget->verticalHeaderItem( newRow ) );
为什么使用verticalHeaderItem
地址检索行返回-1
的无效行?
从你的代码来看,我不确定你想做什么是有意义的。
在您的示例中,newRow被初始化为表中的行数-它似乎是4,这是一个正常的答案。
QTableWidget上的row()函数将返回给定项出现的行号。由于您为行提供了垂直标题项,因此它返回-1,因为垂直标题不被认为是在一行中——它们与表小部件的"内容行"是分开的。
相关文章:
- 将 QByteArray 转换为无符号短:不符合预期
- 为什么此模板函数的行为不符合预期?
- 为什么 std::basic_ostream::运算符<<不符合 CONST 资格?
- std::vector 构造initializer_list的行为不符合预期
- C++使用 LZ4 进行压缩,压缩信息不符合预期
- 为什么 std::future::wait_for 的行为不符合预期?
- Seekg 的行为不符合预期
- Int 附加到字符,行为不符合我的预期
- NDK r16b std::istringstream 的行为不符合预期
- 为什么std::is_copy_constructible的行为不符合预期
- 我的代码到底在哪里不符合键和值类型的规范
- 如果库的包含路径设置不符合预期,如何引发编译错误
- 为什么 [std::is_move_assignable] 的行为不符合预期?
- 代码片段在某些情况下有效,但不符合预期,为什么
- 对指针行为不符合预期行为的 const 引用
- 字节不符合记忆映射和对文件进行排序
- srand() 范围不符合预期的 C++
- 简单的字符串输出不符合预期(出现换行符)
- 为什么根据 C++11 标准,std::seed_seq是不可复制的,为什么 gcc/clang 不符合?
- QTableWidget::row()行为不符合预期