如何在TableWidget的单元格中添加文本

4

我在我的应用程序中有一个表格小部件(tablewidget)。它有两列,包括文件名(filename)和文件路径(filepath)。我想通过一个按键(pushbutton)向这个表格小部件添加文本,并使用这个文本来进行一些操作。如何实现?


我需要一些函数,但我不知道应该使用哪些函数? - Enes Altuncu
你尝试过谷歌搜索吗?比如“qtablewidget添加行”?你读过一些结果吗? - gengisdave
是的,但我有一个问题。我需要将文本添加到单元格中,而不是项目。在谷歌的结果中,它显示了使用项目的方法。 - Enes Altuncu
是的,您不能直接向 QTableWidget 单元格添加文本,您必须通过 QTableWidgetItem(逐个单元格)进行操作。 - gengisdave
我正在从目录中获取文件名并将它们添加到表格小部件中。那么,我如何使用QTableWidgetItem来实现呢? - Enes Altuncu
1个回答

7

您不能直接将文本(QString)添加到QTableWidget中,您必须先创建一个QTableWidgetItem,然后将其插入到所需的单元格中。例如:

// create a new qtablewidget
QTableWidget tablewidget;

// our tablewidget has 2 columns
tablewidget.setColumnCount(2);

// we insert a row at position 0 because the tablewidget is still empty
tablewidget.insertRow(0);

// we add the items to the row we added
tablewidget.setItem(0, 0, new QTableWidgetItem("first row, first column"));
tablewidget.setItem(0, 1, new QTableWidgetItem("first row, second column"));

如果你有更多列,方法是相同的

如果你想添加更多行(即使是第一个也很好),你可以使用通用方法

tablewidget.insertRow(tablewidget.rowCount());

这个功能总是在表格末尾添加新行(追加);

更难的是:这应该解释insertRow()如何不同(和强大),而不存在appendRow()

QTableWidget tablewidget;
tablewidget.setColumnCount(2);

// we insert a row at position 0 because the tablewidget is still empty
tablewidget.insertRow(tablewidget.rowCount());

tablewidget.setItem(0, 0, new QTableWidgetItem("first row, first column"));
tablewidget.setItem(0, 1, new QTableWidgetItem("first row, second column"));

// "append" new row at the bottom with rowCount()
tablewidget.insertRow(tablewidget.rowCount());
tablewidget.setItem(1, 0, new QTableWidgetItem("second row, first column"));
tablewidget.setItem(1, 1, new QTableWidgetItem("second row, second column"));

// we insert a "new" second row pushing the old row down
tablewidget.insertRow(1);
tablewidget.setItem(1, 0, new QTableWidgetItem("this push the"));
tablewidget.setItem(1, 1, new QTableWidgetItem("second row down"));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接