void QTableWidget::removeRow ( int row ) [slot]Removes the row row and all its items from the table.
#ifndef _CWidget_H_#define _CWidget_H_#include <QtGui>#include <QWidget>class CWidget : public QWidget{ Q_OBJECTpublic: CWidget(QWidget *parent = 0);private: QLineEdit *line1, *line2; QLabel *labelPapka; QPushButton *pushButton1, *pushButton2, *pushButton3; QTableWidget *table; // строка в таблице int i,j; int x; QTableWidgetItem *twi1[5]; QLabel *lab2[5], *lab3[5];public slots: void addStr(); void delStr(); void delAll();};#endif // _CWidget_H_
#include "CWidget.h"CWidget::CWidget(QWidget *parent) :QWidget(parent){ i=0; j=0; // 1-я строка resize(750,300); // размер СWidget // таблица table = new QTableWidget; table->setColumnCount(3); table->horizontalHeader()->setDefaultAlignment(Qt::AlignCenter); table->horizontalHeader()->setResizeMode(QHeaderView::Stretch); //автоширина колонок table->setSelectionBehavior(QAbstractItemView::SelectRows); // выделить 1 строку QStringList *lst = new QStringList; *lst << "linc" << "name" << "length"; table->setHorizontalHeaderLabels(*lst); //гипер-ссылка line1 = new QLineEdit("http://"); QLabel* label_Linc = new QLabel("Linc:"); label_Linc->setBuddy(line1); //кнопки pushButton1 = new QPushButton("AddStr"); pushButton2 = new QPushButton("DelStr"); pushButton3 = new QPushButton("DelAll"); // папка labelPapka = new QLabel("Papka"); line2 = new QLineEdit("C:\\Papka\\"); //1 - left QGridLayout* left_Layout = new QGridLayout; left_Layout->addWidget(label_Linc, 0, 0); left_Layout->addWidget(line1, 0, 1); left_Layout->addWidget(table, 1, 0, 1, 2); left_Layout->addWidget(labelPapka, 2, 0); left_Layout->addWidget(line2, 2, 1); //2 - right QVBoxLayout* right_Layout = new QVBoxLayout; right_Layout->addWidget(pushButton1); right_Layout->addWidget(pushButton2); right_Layout->addWidget(pushButton3); //3 - main QHBoxLayout* main_Layout= new QHBoxLayout; main_Layout->addLayout(left_Layout); main_Layout->addLayout(right_Layout); setLayout(main_Layout); // добавить строку connect(pushButton1, SIGNAL(clicked() ), SLOT( addStr() )); // удалить строку connect(pushButton2, SIGNAL(clicked() ), SLOT( delStr() )); // удалить все строки connect(pushButton3, SIGNAL(clicked() ), SLOT( delAll() ));}void CWidget::addStr(){ // вставить строку table->insertRow(i); twi1[i] = new QTableWidgetItem(QString("http://")); //1 table->setItem(i, j, twi1[i]); lab2[i] = new QLabel("10"); table->setCellWidget(i, j+1, lab2[i]); //2 lab3[i] = new QLabel("20"); table->setCellWidget(i, j+2, lab3[i]); //3 // 0 0 | 0 1 // 1 0 | 1 1 i++; j=0; // еще строка}void CWidget::delStr(){ int x = table->currentIndex().row(); // удалить строку table->removeRow(x); if (x > 0) i= i-1; else i = 0;}void CWidget::delAll(){ table->clearContents(); table->clear(); QStringList *lst = new QStringList; *lst << "linc" << "name" << "length"; table->setHorizontalHeaderLabels(*lst); i = 0;}
C++ (Qt)void CWidget::delAll(){ table->clearContents(); table->setRowCount( 0); i = 0; /*Зачеи вам i не знаю, судя по коду вы храните кол-во строк. Хотя его можно получить через rowCount()*/}
C++ (Qt)int x = 0;for (x = table->rowCount()-1; x >= 0; x--)table->removeRow(x);