Qt下QTableWidget 基本用法
QTableWidget的基本设置
设置表头
ui->tableWidget->setColumnCount(11);
ui->tableWidget->setRowCount(10);
ui->tableWidget->setHorizontalHeaderLabels(QStringList() << “Id” << “Name” << “Unit” << “Value” << “Min” << “Max” << “Type” << “Mode” << “Enable” << “Last read” << “Last write”);
ui->tableWidget->verticalHeader()->setVisible(false); // 隐藏水平header
ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectItems); // 单个选中
ui->tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); // 可以选中多个
整行选中
ui->tableWidget->setSelectionBehavior ( QAbstractItemView::SelectRows);
ui->tableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
内容居中
ui->tableWidget->item(i,j)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
单元格不可编辑
ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
让table失去焦点
ui->tableWidget->setFocusPolicy(Qt::NoFocus);
表格添加一行
int iRow = ui->tableWidget->rowCount();
ui->tableWidget->setRowCount(iRow + 1);
隐藏某一列
ui->tableWidget->setColumnHidden(3,true);
删除所有行
for(int i=0;i<nRowCount;i++)
{
ui->tableWidget->removeRow(0);
}
设置与获取控件
某单元格设置为控件 QComboBox *cbbSN=new QComboBox();QStringList listSN;listSN<<"A1"<<"A2"<<"A3"<<"A4"<<"B1"<<"B2"<<"B3"<<"B4"<<"C1"<<"C2";cbbSN->addItems(listSN);ui->tableWidget->setCellWidget(row,col,cbbSN);获取控件QComboBox *cbbSN=(QComboBox *)(ui->tableWidget->cellWidget(row,column));//判断单元格是QComboBox还是普通Item//是QComboBoxif( tableWidget->cellWidget(i, 1) != NULL ){auto cellWidget = ( tableWidget->cellWidget(i, 1) );ComboBox *combox=(QComboBox*)cellWidget;sInsert = combox->currentText();insertValue.append( sInsert );}//普通表格单元else{//}
QTableWidget 中插入QCheckBox复选框,状态判断,居中显示
https://blog.csdn.net/hss2799/article/details/109581878
设置某列不可编辑
设置QTableWidget的某些字段不可编辑和背景颜色
/* 设置不可修改的Id Name两列的背景颜色为灰色 */
for(int i = 0; i < rowCount; i++) {
QTableWidgetItem *item = new QTableWidgetItem();
item->setBackground(QBrush(QColor(Qt::lightGray)));
item->setFlags(item->flags() & (~Qt::ItemIsEditable));
ui->tableWidget->setItem(i, 0, item);
}
设置某列可编辑
QTableWidgetItem *item = new QTableWidgetItem();
item->setFlags(item->flags() | Qt::ItemIsEditable);
设置某列为复选框
QTableWidgetItem* item=ui->tabCurve->item(i,0)
item->setCheckState(Qt::Unchecked)
QTableWidget表格内容自适应列宽
void QHeaderView::setSectionResizeMode(ResizeMode mode)
QHeaderView::Interactive
用户可以调整部分的大小。 也可以使用resizeSection()以编程方式调整该部分的大小。 段大小默认为defaultSectionSize。 (另请参见cascadingSectionResizes。)
QHeaderView::Fixed
用户无法调整该部分的大小。 只能使用resizeSection()以编程方式调整该部分的大小。 段大小默认为defaultSectionSize。
QHeaderView::Stretch
QHeaderView将自动调整该部分的大小以填充可用空间。 大小不能由用户或以编程方式更改。屏幕不够大时,会自动缩小,不出现滚动条。
QHeaderView::ResizeToContents
QHeaderView将自动调整该部分的大小以填充可用空间。 大小不能由用户或以编程方式更改。会出现滚动条,显示完整
this->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); //x先自适应宽度
this->horizontalHeader()->setSectionResizeMode(0, QHeaderView::ResizeToContents); //然后设置要根据内容使用宽度的列
QTableWidget如何设置选择模式
设置单行选择,通过调用setSelectionBehavior接口,设置QAbstractItemView::SelectRows的属性
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //选中单元格,行还是列
运行程序之后,可以看到单击之后,选中的是当前行,而不是单元格
如果表格不需要支持Ctrl、Shift、 Ctrl+A等操作方法,那么可以调用接口setSelectionMode设置属性为
QAbstractItemView::SingleSelection
tableWidget->setSelectionMode(QAbstractItemView::SingleSelection) //设置单行模式
如果想要表格支持多选模式,比如Ctrl、Shift、 Ctrl+A、鼠标左键按下滑动多选等操作方法,那么可以调用接口setSelectionMode设置属性为QAbstractItemView::ExtendedSelection
//设置单选,多选,扩展选择
tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); //多选模式
##QTableWidget获取行号
QTableWidget::SelectedRanges()
QList<QTableWidgetSelectionRange> ranges = ui.tableWidget->selectedRanges();
if(ranges.count() == 0)
{qDebug() << QStringLiteral("请选择一行");
}
else
{for(int i = 0; i < ranges.count(); i++){int topRow=ranges.at(i).topRow();int bottomRow=ranges.at(i).bottomRow();for(int j = topRow; j <= bottomRow; j++){qDebug()<<QstringLiteral("当前选择行号为:")<<j;}}
}
ranges四个参数
topRow:所选区域的开始行号;
bottomRow:所选区域的截止行号;
left:所选区域的开始列号;
right:所选区域的结束列号。
Qt下QTableWidget 基本用法相关推荐
- Qt下QTableWidget的使用
1.QTableWidget的基本设置 ui->tableWidget->setColumnCount(11); ui->tableWidget->setRowCount(Nu ...
- Qt下使用vs编译的库文件
Qt下调用VS制作的静态库 1.制作静态库的编译器和Qt版本的编译器是一样 如果是使用Visual Studio 制作的静态库,比如使用Visual Studio 2013制作的,而要使 ...
- Qt QLineEdit单行输入框用法详解
Qt QLineEdit单行输入框用法详解 QLineEdit 是 Qt 提供的一个控件类,它直接继承自 QWdiget 类,专门用来创建单行输入框,如下图所示: 图 1 单行文本输入框 实际开发中, ...
- Qt QListWidget列表框用法详解
Qt QListWidget列表框用法详解 很多应用程序中需要以列表的形式向用户展示数据(资源),比如 Windows 操作系统会以列表的方式展示很多张桌面背景图(如图 1a) 所示),再比如很多音乐 ...
- Qt中QMessageBox的用法---看这一篇就够了
一.详细说明 QMessageBox类提供一个模态对话框,用于通知用户或询问用户一个问题并接收答案. 消息框显示一个主要文本,用于向用户提示某个情况;显示一个信息文本,用于进一步解释警报或向用户询问问 ...
- linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...
- Qt下一行代码就可以使用的稳定易用的日志log类
Qt下一行代码就可以使用的稳定易用的日志类 此日志类是基于Qt 自带的 扩展的一个易用的日志类, 使用的是Qt自带的日志输出形式, 已长期运行在许多实际项目中,稳定可靠,而且跨平台, 在windows ...
- shell下的seq用法
linux下seq的用法: 它有三个选项 -f, --format=FORMAT use printf style floating-point FORMAT (default: %g) - ...
- linux下svn的用法(转)
linux下svn的用法 2008-10-30 17:12:56 标签:linux svn 用法 [推送到技术圈] 来源:http://zhoutao.blog.51cto.com/425866/10 ...
最新文章
- 【文档】七、Mysql Binlog不同事件类型的事件内容
- 解码大脑:在脑机接口上寻求稳定性
- win10系统下cmd输入一下安装的软件命令提示拒绝访问解决办法
- Spring-AOP 通过配置文件实现 环绕增强
- python交互式和文件式区别_Python中的交互式数据可视化与Bokeh(系列五)
- vue3源码中的最长递增子序列
- 软件连接oracle失败怎么办,【编程开发工具】navicat连接oracle失败怎么办
- mongoose中的populate之多级填充,嵌套字段填充?
- [前端随笔][css] 弹性布局
- vc6 设置静态文本框透明_微信还能这么玩?半透明的微信背景主题用起来!
- java静态方法求n,java之静态属性和静态方法
- 彼得·林奇的 PEG 估值策略
- 抱歉,我又可以了。。。
- JPA ObjectDeletedException: deleted instance passed to merge
- 交换机与路由器技术:静态路由配置和路由器上配置DHCP、虚拟局域网VLAN
- E20170513-hm
- 印度市场救不了苹果手机,也救不了库克
- 数据推荐 | 自然对话语音数据集
- sqlserver实现只查询一条数据
- 2022最新网络安全零基础学习路线
热门文章
- .Net Core 文件的上传下载
- 2022年全国最新中级消防设施操作员模拟题库及答案
- Data (Privacy) Regulation 数据隐私法规整理
- 数据结构——二叉树交换左右子树位置(C语言)
- 小狐狸对于个人职业规划的思考
- 行业沙龙第六期丨数字化采购寻源,实现阳光采购
- 《财富》杂志评选的75本必读的最睿智的图书
- Oracle设置主键报错 ORA-02437: 无法验证 (DENGCHAO.TEST) - 违反主键
- Tomb.Finance的每周更新(5.2-5.8)
- 【思维导图】巩固你的JavaScript知识体系