Qt QTableWidget的使用方式

原创 2016年05月31日 13:21:55
//QTableWidget行选中/删除/添加行

//1  均分各列
 tableWidget->horizontalHeader()->setStretchLastSection(true); //就是这个地方
 tableWidget->horizontalHeader()->setResizeMode(QHeaderView::Stretch);
 
//2 整行选中:job_20160526213327
tableWidget->setSelectionBehavior ( QAbstractItemView::SelectRows); //设置选择行为,以行为单位
tableWidget->setSelectionMode ( QAbstractItemView::SingleSelection); //设置选择模式,选择单行

//3  删除选中的整行
   int rowIndex = m_pAttrbuteList->currentRow();
   if (rowIndex != -1)
     tableWidget->removeRow(rowIndex);
	 
	/* 为了将数据能够在界面中显示的更清楚一些,在这里应用到了tableWidget控件,现将该控件中删除指定行的代码介绍如下:
	 QTable里有一个removeRow(int i)函数用来删除当前行,但是如果我们没有对于table进行任何的选中,那么QTable是如何返回的呢?
	 用Qt Creator里拖了一个tableWidget,加一个按钮,点击删除后执行*/
	 int i = ui->tableWidget->currentRow();
	 QMessageBox msg;
	 msg.setText(QString::number(i));
	 msg.exec();
	 ui->tableWidget->removeRow(i);
	 /*在不选择行的情况下发现每次点击后删除的都是第一行,i的输出都是0,原因其实很简单,就是因为table的当前焦点在第一样的 第一个单元格所导致的,解决的办法就是让table失去焦点,在构造函数里面添加ui->tableWidget->setFocusPolicy(Qt::NoFocus);
	 然后再试,发现点击删除按钮如果不选中行的话是不能删除的,返回的i此时是-1。
	 控件刚开始的时候左边默认自带序列号,如果想去掉左边的行号,加上下面的代码就可以了。*/
      QHeaderView* headerView = table的名字->verticalHeader();
      headerView->setHidden(true);
	  
//4 添加整行
int rowIndex = m_pAttrbuteList->rowCount();
tableWidget->setRowCount(rowIndex + 1);//总行数增加1
tableWidget->setRowHeight(rowIndex, 24);//设置行的高度

--------------------------------------------------------------------------------

QTableWidget *table = new QTableWidget(this);
table->setColumnCount(5);    //设置列数
table->setRowCount(3);        //设置行数/

/*设置列名*/
QStringList headers;
headers<<"列名1"<<"列名2"<<"列名3";
table->setHorizontalHeaderLabels(headers);

/*给单元格添加内容*/
void addItemContent(int row, int column, QString content)
{
      QTableWidgetItem *item = new QTableWidgetItem (content);
      table->setItem(row, column, item);
}

/*给单元格中增加图标*/
QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), NULL);  //只加入图标,没有字符串
QTableWidgetItem *item = new QTableWidgetItem(QIcon("myImage.jpg"), myString);   //加入图标和字符串
table->setItem(row, column, item);

/*插入一行*/
int row = table->rowCount();
table->insertRow(row);

/*插入一列*/
int column = table->columnCount();
table->insertColumn(column);

//使行列头自适应宽度,最后一列将会填充空白部分
table->horizontalHeader()->setStretchLastSection(true);          

//使行列头自适应宽度,所有列平均分来填充空白部分            
table->horizontalHeader()->setResizeMode(QHeaderView::Strtch);        

//使行自适应高度,假如行很多的话,行的高度不会一直减小,当达到一定值时会自动生成一个QScrollBar
table->verticalHeader()->setResizeMode(QHeaderView::Strtch);

//设置单击选择一行
table->setSelectionBehuavior(QAbstractItemView::SelectRows);

//设置每行内容不可编辑
table->setEditTriggers(QAbstractItemView::NoEditTriggers);

//设置只能选择一行,不能选择多行
table->setSelectionMode(QAbstractItemView::SingleSelection);

/*去掉每行的行号*/
QHeaderView *headerView = table->verticalHeader();
headerView->setHidden(true);

/*设置让某个单元格或某行选中*/
//选中单元格:
table->setCurrentCell(row, column, QItemSelectionModel::Select);
//选中一行:
table->setCurrentCell(row, QItemSelectionModel::Select);//(注意此处的列没有值)

//设置某一列为不可编辑
for(int i = 0; i<tabelwidget.rowcount();i++)
{
    item(i, colunm)->setFlags(Qt::NoItemFlags);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

【Qt开发】QTableWidget的详细设置

在使用Qt不多的日子里,已经两次用到了QTableWidget这个控件,也慢慢的习惯和喜欢上了它。再使用QTableWidget的时候,已不像刚开始使用时的迷茫。嗯嗯。现在就来总结总结我与QTable...

QTableWidget行选中/删除/添加行

1  均分各列  tableWidget->horizontalHeader()->setStretchLastSection(true); //就是这个地方  tableWidget->horizo...

QTableWidget中的clicked和DoubleClicked事件

本来昨晚想写一个双击table中的某个Item,便活的这个item所在的记录,然后产生事件的一个小程序。但是却发现了一个让我很无语的问题。我用文档里提供的Itemclicked()和Itemdoubl...

qt 中如何向QTableWidget里大量添加数据?

实验说明:通过一个按钮,选择一张图片,将图片添加到表格里,并且添加1000条该数据

QT TableWidget插入数据

QT TableWidget插入数据。

QTableWidget 详细使用

QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidge...

Qt下QTableWidget的使用

本文主要内容: QTableWidget的基本设置 设置QTableWidget的某些字段不可编辑和背景颜色 QTableWidget单元格的插入 QTableWidget按字段值排序 在QTable...

清空Qtablewiget 表格的内容

今天用到了Qtablewiget 清空表格内容; 其中: void QTableWidget::clear () [slot]//清空掉表格内所有内容,包括标题头 Removes all ite...

QT TableWidget应用笔记

1、设置表头及大小 QStringList header; header"ID""NAME""年龄""sex""data"; ui->tableWidget->s...
  • lpdpzc
  • lpdpzc
  • 2013-05-21 16:22
  • 11773

QTableView和QTableWidget翻页功能实现

QTableView和QTableWidget翻页功能实现  转自:http://indure.chinaunix.com/space.php?uid=25520556&do=blog&id=2...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)