0
當使用指向有效垂直標題項的指針調用QTableWidget::row(const QTableWidgetItem * item)
時,函數返回-1
。我不期望這個,因爲我通過調用QTableWidget::setVerticalHeaderItem (int row, QTableWidgetItem * item)
明確地將表格小部件中的行的垂直標題項目設置爲指針指向的項目。QTableWidget :: row()行爲不如預期
示例代碼:
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
無效行檢索行?
爲了簡潔起見,我省去了一些額外的代碼。所以「內容行」不被視爲包含頭部?在我的表格中,垂直標題顯示爲行的一部分。這是典型的嗎? –
垂直標題是按行排列的,但它們本身不被視爲行,甚至不屬於它們所連接的行的一部分。如果您需要更精確地控制這些事情的工作方式,您應該查看子類化QTableView。 – CmdrMoozy
我剛剛寫了一個循環遍歷每一列,通過'columnCount'通過'0',並且足夠true'verticalHeaderItem'不存在用於任何*行。你是對的,即使我質疑設計決定:-)謝謝! –