Qt学习笔记 TableWidget使用说明和增删改操作的实现 联系客服

发布时间 : 星期四 文章Qt学习笔记 TableWidget使用说明和增删改操作的实现更新完毕开始阅读af2075b84b35eefdc9d3338a

Qt学习笔记 TableWidget使用说明和增删改操作的实现 看一下效果很简单的一个小功能

先说分部讲一下过程 再给出详细代码 添加数据

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {

ui->setupUi(this);

ui->tableWidget->setColumnCount(2); ui->tableWidget->setRowCount(2);

ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<\<<\e\);

ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //整行选中的方式

ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //禁止修改

ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //设置为可以选中单个

ui->tableWidget->setItem(0,0,new QTableWidgetItem(\)); ui->tableWidget->setItem(0,1,new QTableWidgetItem(\));

ui->tableWidget->verticalHeader()->setVisible(false); //隐藏列表头

ui->tableWidget->setItem(1,0,new QTableWidgetItem(\)); ui->tableWidget->setItem(1,1,new QTableWidgetItem(\)); ui->tableWidget->selectRow(0); }

进行增删除修改操作

#include \ #include \ #include

MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) {

ui->setupUi(this);

ui->tableWidget->setColumnCount(2); ui->tableWidget->setRowCount(2);

ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<\<<\e\);

ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //整行选中的方式

ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); //禁止修改

ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection); //设置为可以选中单个

ui->tableWidget->setItem(0,0,new QTableWidgetItem(\)); ui->tableWidget->setItem(0,1,new QTableWidgetItem(\));

ui->tableWidget->verticalHeader()->setVisible(false); //隐藏列表头

ui->tableWidget->setItem(1,0,new QTableWidgetItem(\)); ui->tableWidget->setItem(1,1,new QTableWidgetItem(\)); ui->tableWidget->selectRow(0); }

MainWindow::~MainWindow() {

delete ui; }

void MainWindow::on_tableWidget_currentItemChanged(QTableWidgetItem *current, QTableWidgetItem *previous) {

if(previous!=Q_NULLPTR) {

previous->setBackgroundColor(Qt::transparent); }

if(current==Q_NULLPTR)return;

current->setBackgroundColor(Qt::blue); }

void MainWindow::on_btn_Add_clicked() {

// QAbstractItemModel *model = ui->tableWidget->model(); // model->insertRow(model->rowCount()); int cols=ui->tableWidget->columnCount(); int rows=ui->tableWidget->rowCount(); qDebug()<

ui->tableWidget->insertRow(rows); for(int i=0;i

ui->tableWidget->setItem(rows,i,new QTableWidgetItem(\+QString::number(rows))); }

ui->tableWidget->selectRow(rows); }

void MainWindow::on_btn_Del_clicked() {

QTableWidgetItem * item = ui->tableWidget->currentItem(); if(item==Q_NULLPTR)return;

ui->tableWidget->removeRow(item->row()); }

void MainWindow::on_btn_Modify_clicked() {

QModelIndex index = ui->tableWidget->currentIndex();

QList listItem = ui->tableWidget->selectedItems(); if(listItem.count()==0)return; foreach (QTableWidgetItem * item, listItem) { item->setText(\); } // QTableWidgetItem * item = ui->tableWidget->currentItem(); // if(item==Q_NULLPTR)return; // item->setText(\ } 这里有一些对TableWidget的设置说明一下 1. 将表格变为禁止编辑 在默认情况下,表格里的字符是可以更改的,比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样: tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); QAbstractItemView.NoEditTriggers是QAbstractItemView.EditTrigger枚举中的一个,都是触发修改单元格内容的条件: QAbstractItemView.NoEditTriggers 0 No editing possible. 不能对表格内容进行修改 Editing start whenever current QAbstractItemView.CurrentChanged 1 item changes.任何时候都能对单元格修改 Editing starts when an item is double clicked.双击单元格 QAbstractItemView.DoubleClicked 2 Editing starts when clicking on an QAbstractItemView.SelectedClicked 4 already selected item.单击已选中的内容 Editing starts when the platform QAbstractItemView.EditKeyPressed 8 edit key has been pressed over an item.