我剛開始使用Qt,所以請耐心等待。當我使用QTableWidget-> getItemAt()時,如果使用currentItemChanged並單擊相同的項目,它將返回不同的項目。我相信有必要使用itemAt(),因爲我需要得到所點擊行的第一列。QTableWidget :: itemAt()返回看似隨機的項目
一些示例代碼如下:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QList<QString> rowContents;
rowContents << "Foo" << "Bar" << "Baz" << "Qux" << "Quux" << "Corge" << "Grault" << "Garply" << "Waldo" << "Fred";
for(int i =0; i < 10; ++i)
{
ui->tableTest->insertRow(i);
ui->tableTest->setItem(i, 0, new QTableWidgetItem(rowContents[i]));
ui->tableTest->setItem(i, 1, new QTableWidgetItem(QString::number(i)));
}
}
//...
void MainWindow::on_tableTest_currentItemChanged(QTableWidgetItem* current, QTableWidgetItem* previous)
{
ui->lblColumn->setText(QString::number(current->column()));
ui->lblRow->setText(QString::number(current->row()));
ui->lblCurrentItem->setText(current->text());
ui->lblCurrentCell->setText(ui->tableTest->itemAt(current->row(), current->column())->text());
}
對於以1X9該項目時,顯示lblCurrentItem 「9」(如它應該,),而lblCurrentCell顯示 「QUUX」。難道我做錯了什麼?
itemAt()與item() – user110418 2010-06-06 14:12:22
你說得對,看起來我用itemAt()的時候應該用過item()。我應該更徹底地閱讀文檔。謝謝您的幫助! – 2010-06-06 14:14:12
我犯了同樣的錯誤。感謝您的澄清。 – 2010-11-10 17:48:05