Qt tableWidget增加一行,删除一行,删除所有行的操作

在创建好表格后,首先需要在Qt Designer拖出来三个QPushButton按钮,分别设置对象名为:AddButton,DeleteButton,DeleteAllButton。

.h文件

#pragma once

#include <QMainWindow>

namespace Ui { class MainWindow; }


class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *pParent = nullptr);
    virtual ~MainWindow();

private slots:
    void AddProgram();
    void DeleteProgram();
    void DeleteAll();

private:
    Ui::MainWindow *m_pUI;

}

.cpp文件

#include "MainWindow.h"
#include <QtDebug>

#include "ui_MainWindow.h"

MainWindow::MainWindow(QWidget *pParent)
    : QMainWindow(pParent),
      m_pUI(new Ui::MainWindow)
{
    m_pUI->setupUi(this);

    connect(m_pUI->AddButton,&QPushButton::clicked,this,&MainWindow::AddProgram);
    connect(m_pUI->DeleteButton, &QPushButton::clicked, this, &MainWindow::DeleteProgram);
    connect(m_pUI->DeleteAllButton, &QPushButton::clicked, this, &MainWindow::DeleteAll);

}

void MainWindow::AddProgram()//增加一行
{
    int rowIndex = m_pUI->tableWidget->rowCount();//当前表格的行数
    m_pUI->tableWidget->insertRow(rowIndex);//在最后一行的后面插入一行
}

void MainWindow::DeleteProgram()//删除一行
{
    int rowIndex = m_pUI->tableWidget->currentRow();
    if (rowIndex!=-1)
    {
        m_pUI->tableWidget->removeRow(rowIndex);
    }
}

void MainWindow::DeleteAll()//删除所有行
{
    int counter = m_pUI->tableWidget->rowCount();
    qDebug()<< "counter is" << counter;
    for (int index=0;index<=counter;index++)
    {
        QTableWidgetItem *item = m_pUI->tableWidget->takeVerticalHeaderItem(index);
        delete item;
    }
}


版权声明:本文为zong521777原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。