2015-09-10 2 views
0

У меня есть табличный виджет в моем приложении. Он имеет 2 столбца, включая имя файла и путь к файлу. Я хочу добавить текст в этот виджет таблицы с помощью кнопочной кнопки и использовать этот текст для выполнения некоторой операции. Как это сделать?Как добавить текст в ячейку tablewidget

+0

Мне нужны некоторые функции, я думаю, но я не знаю, какие функции я должен использовать? – qwerty

+0

Вы что-то пробовали? как "qtablewidget добавить строку"? прочитали ли вы некоторые результаты? – gengisdave

+0

Да, но у меня проблема. Мне нужно добавить текст в ячейку, а не элемент. В результатах в google он показывает метод с элементом. – qwerty

ответ

1

Вы не можете добавить текст (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"));