如何将文本添加到 tablewidget 的单元格

Ene*_*ncu 1 c++ qt qt-designer qt5.3

我的应用程序中有一个 tablewidget。它有 2 列,包括文件名和文件路径。我想用一个按钮向这个 tablewidget 添加文本,并使用这个文本来做一些操作。这该怎么做?

gen*_*ave 5

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

// 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"));
Run Code Online (Sandbox Code Playgroud)

如果你有更多的列,方法是一样的

如果您想添加更多行(即使是第一行也很好),您可以使用泛型

tablewidget.insertRow(tablewidget.rowCount());
Run Code Online (Sandbox Code Playgroud)

它总是在表的末尾添加一个新行(追加);

更困难:这应该解释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"));
Run Code Online (Sandbox Code Playgroud)