文章目录

  • 0 表格设置
  • 1 添加 QCombox
  • 2 取出QComboBox的值
  • 3 添加QCheckBox 方式一
  • 4 添加QCheckBox 方式二
  • 4 添加QCheckBox 方式3
  • 5 删除表格中所有的行

0 表格设置

 //设置表格的样式ui->tableWidget->verticalHeader()->hide();ui->tableWidget->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter);//表头字体居中ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);//单元格不可编辑ui->tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background:rgb(2,20,130);color: white;}");//设置表头背景和字体颜色ui->tableWidget->verticalHeader()->setDefaultSectionSize(40); //设置行高ui->tableWidget->horizontalHeader()->setStretchLastSection(true); //均分各列ui->tableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch);//列可扩展ui->tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//设置整行选中//让tableWidget内容中的每个元素居中for (int i=0;i<5;i++){for (int j=0;j<8;j++){ui->tableWidget->item(i,j)->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);}}

1 添加 QCombox

//tablewidget中存储combox等
//  ui.tableWidget->setRowCount(0);//设置行数ui.tableWidget->setAlternatingRowColors(true); //设置隔行显示颜色ui.tableWidget->horizontalHeader()->setDefaultAlignment(Qt::AlignHCenter);//表头字体居中//ui.tableWidget->horizontalHeader()->setStretchLastSection(true); //均分各列ui.tableWidget->resizeRowsToContents();ui.tableWidget->verticalHeader()->setHidden(true);//ui.tableWidget->horizontalHeader()->setStyleSheet("QHeaderView::section{background-color:rgb(40,143,218);font:8pt '宋体'};");int width = this->width() / 6;//设置列宽ui.tableWidget->setColumnWidth(0, width);ui.tableWidget->setColumnWidth(1, width);ui.tableWidget->setColumnWidth(2, width);ui.tableWidget->setColumnWidth(3, width);ui.tableWidget->setColumnWidth(4, this->width()-width*4);

添加QCombox

    int row = ui.tableWidget->rowCount();QComboBox * cb = new QComboBox;cb->addItem(QStringLiteral("xx1")); //0cb->addItem(QStringLiteral("xx2")); //1cb->addItem(QStringLiteral("xx3"));//2//插入一行ui.tableWidget->insertRow(row);ui.tableWidget->setCellWidget(row, 0, cb);

删除一行

int  row = ui.tableWidget->currentRow();if (row != -1){ui.tableWidget->removeRow(row);}

2 取出QComboBox的值

QComboBox * cb_type = (QComboBox *)ui.tableWidget->cellWidget(i, 1); //类型

3 添加QCheckBox 方式一

QCheckBox * cbox = new QCheckBox;int row = ui.tw_combat_unit->rowCount();ui.tw_combat_unit->insertRow(row);ui.tw_combat_unit->setItem(row, 0, new QTableWidgetItem(QString::fromStdString(name)));ui.tw_combat_unit->setCellWidget(row, 1, (QWidget *)cbox);//单元格内容居中ui.tw_combat_unit->item(row, 0)->setTextAlignment(Qt::AlignCenter);

4 添加QCheckBox 方式二

QTableWidgetItem *check = new QTableWidgetItem("50%");check->setCheckState(Qt::Checked);QCheckBox * cbox = new QCheckBox;int row = ui.tw_target->rowCount();qDebug() << row;ui.tw_target->insertRow(row);ui.tw_target->setItem(row, 0, new QTableWidgetItem(QString::fromStdString(name)));//ui.tw_target->setCellWidget(row, 1, (QWidget *)cbox);ui.tw_target->setItem(row, 1, check);ui.tw_target->item(row, 0)->setTextAlignment(Qt::AlignCenter);

4 添加QCheckBox 方式3

QCheckbox 居中在单元格中显示,并且可以遍历访问

QCheckBox * cbox = new QCheckBox(this); //创建checkboxcbox->setCheckState(Qt::Checked); //设置状态QWidget * w = new QWidget(this);//创建一个widgetQHBoxLayout * hLayout = new QHBoxLayout; //创建布局hLayout->addWidget(cbox);//添加checkboxhLayout->setMargin(0);//设置边缘距离hLayout->setAlignment(cbox, Qt::AlignCenter);//居中w->setLayout(hLayout);int row = ui.tw_combat_unit->rowCount();ui.tw_combat_unit->insertRow(row);ui.tw_combat_unit->setItem(row, 0, new QTableWidgetItem(QString::fromStdString(name)));ui.tw_combat_unit->setCellWidget(row, 1, w); //将widget放到table中ui.tw_combat_unit->item(row, 0)->setTextAlignment(Qt::AlignCenter);

遍历访问QCheckBox

//对数据进行设置for (int i = 0; i < ui.tw_target->rowCount(); i++){QWidget * w = ui.tw_target->cellWidget(i, 1);QCheckBox * cb = (QCheckBox*)w->children().at(1);if (cb){if (cb->checkState() == Qt::Checked){qDebug() << "checked.";}}}

5 删除表格中所有的行

 while(ui.tw_mission_seq->rowCount() > 0){int row = ui.tw_mission_seq->rowCount();if (row > 0){ui.tw_mission_seq->removeRow(row-1);}}

26.QTableWidget用法相关推荐

  1. Qt中QTableWidget用法总结

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

  2. QT QTableWidget 用法总结

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

  3. QTableWidget用法,qt表格使用

    目录 一.前言 二.函数API说明 三.代码区域 四.槽函数连接 一.前言 QTableWidget 是 Qt 提供的⼀种表格控件,类似于我们经常使⽤的 Excel 表格,可以将数据以表格的⽅式展⽰给 ...

  4. Qt解析XML及QTableWidget用法示例

    #include "widget.h" #include "ui_widget.h" #include <QFile> #include <Q ...

  5. JS事件及其兼容用法

    JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定的交互瞬间. 1.事件流:描述的是从页面中接收事件的顺序. IE提出的事件冒泡流:事件开始由最具体的 ...

  6. Javascript的~(波浪号)用法

    原理 js中在变量名前加"~" 是位运算NOT,按位取反. var iNum1 = 25; //25 二进制原码等于 0000000000000000000000000001100 ...

  7. Qt:QChart绘图介绍(主要包含类:QChart,QTableWidget,QGridLayout)

    Qt:QChart绘图介绍(主要包含类:QChart,QTableWidget,QGridLayout) 首先点击[打开]摁键,从excel中读入相关数据 之后点击[计算]摁键,将数据进行处理,并将部 ...

  8. J2SE基础常见面试题目

    </pre>本系列文章收录了一些网友及自己在面试过程中遇到的常见J2SE问题,希望能对参加面试的朋友有所帮助,如果大家有好的题目也可以向我提出,本文将不断地维护更新,感谢. <spa ...

  9. 面试心得与总结—BAT、网易、蘑菇街

    先说一下LZ的基本情况,LZ是四川某985学校通信专业的研究生(非计算机),大学阶段也就学了C语言,根本没想过最后要成为码农.大四才开始学Java,研一下开始学Android,所以LZ觉得自己开始就是 ...

最新文章

  1. R语言ggplot2可视化使用ggridges包可视化山脊图(Ridgeline Plots):山脊图(Ridgeline Plots)应用场景、受试者口服茶碱的之后观察茶碱的浓度变化的山脊图
  2. Cramer-Rao Lower Bound (CRLB) Simple Introduction
  3. 线程撕裂者安装linux,Linux FreeBSD 12.1跑分测试:在AMD Ryzen线程撕裂者3970X上快得刷新认知...
  4. NHibernate 与Oracle 点滴
  5. Python 实现图片轮播及音乐循环播放
  6. Task On The Board CodeForces - 1367D(思维)
  7. CentOS6.x下,tomcat - web项目部署
  8. ExtJS 异步加载树节点
  9. 讯时网关IP对接PBX
  10. python条件表达式有哪几个_Python中条件表达式的评估顺序是什么?
  11. 【TLSR825x】windows下开发环境搭建,固件烧录方法
  12. 中国工业行业分类英文翻译
  13. 联合分布概率密度函数
  14. 全球与中国航天工业注塑机市场深度研究分析报告
  15. el-upload 上传 照片墙上传照片,上传一张之后,上传框就消失
  16. txt文件内容导入mysql数据库中_将txt文件导入mysql数据库
  17. 人工智能创造了世界上最好的大象追踪设备
  18. python矩阵求和, numpy.sum()
  19. buu刷题记录 [PWNHUB 公开赛 2018]傻 fufu 的工作日
  20. 【转】.NET引用Excel操作时无法关闭Excel.exe进程的解决方法

热门文章

  1. java treemap lastkey,java.util.TreeMap.higherKey()方法实例
  2. Imgproc.findContours函数
  3. grpc 客户端的context 服务端获取不到_MLamp;DEV[10] | gRPC的应用
  4. Spring Cloud Sleuth + Zipkin + RabbitMQ +MySQL(三)
  5. Pandas 生成随机整数序列
  6. 看图识物_有声绘本故事《晚安,建筑工地》看图识物,嘘,晚安
  7. 鱼c工作室小甲鱼的水平_历历万乡 | 得两代帝王喜爱,又上过国际舞台!深冬就去浙个“年鱼福气”加持的小村子吧!...
  8. c 直接访问mysql_C语言访问MySQL数据库的方法
  9. 来博客园居然有一年了
  10. IP通信基础学习第十周