QT QTableWidget 用法总结
QTableWidget是QT程序中常用的显示数据表格的空间,很类似于VC、C#中的DataGrid。说到QTableWidget,就必须讲一下它跟QTabelView的区别了。QTableWidget是QTableView的子类,主要的区别是QTableView可以使用自定义的数据模型来显示内容(也就是先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型,并且其单元格数据是QTableWidgetItem的对象来实现的(也就是不需要数据源,将逐个单元格内的信息填好即可)。这主要体现在QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的一个单元格,整个表格都需要用逐个单元格构建起来。
#include #include #include int main(int argc, char *argv[]){QApplication a(argc, argv); QTableWidget *tableWidget = new QTableWidget(10,5); // 构造了一个QTableWidget的对象,并且设置为10行,5列
(资料图)
// 也可用下面的方法构造QTableWidget对象// QTableWidget *tableWidget = new QTableWidget;// tableWidget->setRowCount(10); //设置行数为10// tableWidget->setColumnCount(5); //设置列数为5tableWidget->setWindowTitle(\"QTableWidget & Item\");tableWidget->resize(350, 200); //设置表格QStringList header;header<<\"Month\"<<\"Description\";tableWidget->setHorizontalHeaderLabels(header);tableWidget->setItem(0,0,new QTableWidgetItem(\"Jan\"));tableWidget->setItem(1,0,new QTableWidgetItem(\"Feb\"));tableWidget->setItem(2,0,new QTableWidgetItem(\"Mar\"));tableWidget->setItem(0,1,new QTableWidgetItem(QIcon(\"images/IED.png\"), \"Jan"s month\"));tableWidget->setItem(1,1,new QTableWidgetItem(QIcon(\"images/IED.png\"), \"Feb"s month\"));tableWidget->setItem(2,1,new QTableWidgetItem(QIcon(\"images/IED.png\"), \"Mar"s month\"));tableWidget->show();return a.exec();}一. 对QTableWidget本身的效果实现
1. 将表格变为禁止编辑
在默认情况下,表格里的字符是可以更改的,比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样:
tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);QAbstractItemView.NoEditTriggers是QAbstractItemView.EditTrigger枚举中的一个,都是触发修改单元格内容的条件:
2. 设置表格为整行选择
tableWidget->setSelectionBehavior(QAbstractItemView::SelectRows); //整行选中的方式
QAbstractItemView.SelectionBehavior枚举还有如下类型
3.单个选中和多个选中的设置:
tableWidget->setSelectionMode(QAbstractItemView::ExtendedSelection); //设置为可以选中多个目标该函数的参数还可以是:
QAbstractItemView.NoSelection 不能选择QAbstractItemView.SingleSelection 选中单个目标QAbstractItemView.MultiSelection 选中多个目标QAbstractItemView.ExtendedSelection QAbstractItemView.ContiguousSelection 的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选
4. 表格表头的显示与隐藏
对于水平或垂直方法的表头,可以用以下方式进行 隐藏/显示 的设置:
tableWidget->verticalHeader()->setVisible(false); //隐藏列表头tableWidget->horizontalHeader()->setVisible(false); //隐藏行表头注意:需要 #include QHeaderView
5. 对表头文字的字体、颜色进行设置
QTableWidgetItem *columnHeaderItem0 = tableWidget->horizontalHeaderItem(0); //获得水平方向表头的Item对象
columnHeaderItem0->setFont(QFont(\"Helvetica\")); //设置字体columnHeaderItem0->setBackgroundColor(QColor(0,60,10)); //设置单元格背景颜色columnHeaderItem0->setTextColor(QColor(200,111,30)); //设置文字颜色注意:需要 #include 6. 在单元格里加入控件: QTableWidget不仅允许把文字加到单元格,还允许把控件也放到单元格中。比如,把一个下拉框加入单元格,可以这么做: 读取QComboBox 信息: 二. 对单元格的进行设置 1. 单元格设置字体颜色和背景颜色 及字体字符 另:如果需要对所有的单元格都使用这种字体,则可以使用 tableWidget->setFont(QFont(“Helvetica”)); 2. 设置单元格内文字的对齐方式 这个比较简单,使用newItem.setTextAlignment()函数即可,该函数的参数为单元格内的对齐方式,和字符输入顺序是自左相右还是自右向左。 水平对齐方式有: 垂直对齐方式: 如果两种都要设置,只要用 Qt.AlignHCenter | Qt.AlignVCenter 的方式即可 3. 合并单元格效果的实现: tableWidget->setSpan(0, 0, 3, 1) # 其参数为: 要改变单元格的 1行数 2列数 要合并的 3行数 4列数 4. 设置单元格的大小 首先,可以指定某个行或者列的大小 还可以将行和列的大小设为与内容相匹配 5. 获得单击单元格的内容 通过实现 itemClicked (QTableWidgetItem *) 信号的槽函数,就可以获得鼠标单击到的单元格指针,进而获得其中的文字信息 //将itemClicked信号与函数getItem绑定 6.QTableWidget要调整表格行宽主要涉及以下一个函数 resizeColumnsToContents(); 根据内容调整列宽 resizontalHeader()->setResizeMode 把给定列设置为给定模式 主要模式有Stretch和Fixed 7.常用函数 【领 QT开发教程 学习资料, 点击下方链接莬费领取↓↓ ,先码住不迷路~】 点击这里: 标签:
QComboBox *comBox = new QComboBox();comBox->addItem(\"Y\");comBox->addItem(\"N\");tableWidget->setCellWidget(0,2,comBox);QWidget * widget=ui->tableWidget->cellWidget(i,0);//获得widgetQComboBox *combox=(QComboBox*)widget;//强制转化为QComboBoxQString string=combox->currentText();qDebug()<QTableWidgetItem *item = new QTableWidgetItem(\"Apple\");item->setBackgroundColor(QColor(0,60,10));item->setTextColor(QColor(200,111,100));item->setFont(QFont(\"Helvetica\"));tableWidget->setItem(0,3,item);tableWidget->setColumnWidth(3,200);tableWidget->setRowHeight(3,60);tableWidget->resizeColumnsToContents();tableWidget->resizeRowsToContents();connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int)),this,SLOT(getItem(QTreeWidgetItem*,int)));int row = rowCount();removeRow(row);//清除已有的行列setShowGrid(true);//显示表格线verticalHeader()->setVisible(false);//隐藏左边垂直QHeaderView *headerView = horizontalHeader();headerView->setMovable(false);//去除表头的移动headerView->resizeSection(0,284);//设置第一列宽headerView->resizeSection(1,127);//设置第二列宽headerView->setResizeMode(QHeaderView::Fixed);//列表不能移动headerView->setClickable(false);//不响应鼠标单击setEditTriggers(QTableWidget::NoEditTriggers);//不能编辑setSelectionBehavior(QTableWidget::SelectRows);//一次选中一行setSelectionMode(QAbstractItemView::SingleSelection);//只能单选/*QScrollBar *scrollBar = horizontalScrollBar();scrollBar->hide();*/setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条setVerticalScrollMode(QAbstractItemView::ScrollPerItem);//垂直滚动条按项移动setAutoScroll(false);//去掉自动滚动
推荐文章
- QT QTableWidget 用法总结
- 主受np_主受np耽美文
- 做猪肉丸10斤肉放多少食用碱-聚看点
- 专利费用查询系统(专利费用查询)
- 外媒:中亚国家深化合作 实现各国人民和平与繁荣
- 樟木头跆拳道代表队夺得2023年东莞市青少年跆拳道锦标赛冠军
- 德育故事大全100个 德育故事大全
- 视频 | 居全国之首!海南发现水下文化遗存124处-全球热文
- 潼南区气象局发布大风蓝色预警【Ⅳ级/一般】【2023-05-21】_百事通
- 今日热讯:芹菜叶酸丰富,滋筋骨精神好
- EDA软件板块龙头股票有哪些?(2023/5/21)
- 韩国孙悟空电影_悟空电影天堂韩国
- 天津市建委官网_天津住建委考试服务平台
- 世界实时:一觉醒来支付宝被扣2500多元!原因竟是……
- 天天通讯!观察|一个新风口:有着不错“家底”的上海,如何做大科普产业
- 世界讯息:打吗?明日翔腾新材(001373)新股申购,快来看看!
- 老虎跟熊谁厉害_老虎和熊谁厉害|世界快播报
- 亚丝娜和桐人情侣头像_亚斯娜
- 航天员在天上吃的面包是什么形状的?
- 越南摇滚烤鸡腿腌制料?|当前热闻
- 在北京前门“600秒长街”听故事是一种怎样的体验|世界热推荐
- 2023年5月20日广东省二乙烯三胺价格最新行情预测|世界报道
- 路德环境子公司年产15万吨生物发酵饲料一期项目投产
- 【当前独家】小米手机怎么设置来电秀(小米手机怎么设置来电秀照片)
- 中国星辰|星辰大海标注北斗精度|天天新动态
- 哄女朋友爆笑简短笑话大全(哄女朋友开心的幽默笑话)
- 【青听·两岸】台青网红看大陆:用镜头消弭两岸信息差|每日精选
- 重见光明!怀化首批“爱心光明行”白内障公益救助活动患者出院啦
- 分手后想复合应该怎么找话题 男生分手后多久想复合_全球观焦点
- 中通快递10名“最美快递员”和3个“最美快递员”团队受到表彰 时快讯
- 全球即时:多个渠道的可口可乐出现涨价 3.5元时代或将告别?
- 两大议案被否!散户又“赢了”?-快报
- 简单的美食制作方法_怎么做简单的美食
- 魔兽远征_关于魔兽远征简述|环球速读
- 茉莉花开富农家
- 人民币汇率能在合理均衡水平保持基本稳定 焦点快报
- 曜石是什么石_曜石是什么|报道
- 守卫剑阁谁好用_守卫剑阁吃装备-当前热门
- 天津这些地区的餐饮“红黑榜”出炉,有没有你常吃的店? 天天要闻
- 天天简讯:南京江北新区综合行政执法总队开展旅游市场普法检查行动
- 慢性阻塞性肺疾病会急性加重?专家呼吁关注沉默区小气道,最新治疗方案可以改善肺功能_当前焦点
- 今日关注:长沙这家图书馆真牛,引来全国职业院校观摩学习
- 宁波复旦研究院有限公司
- 不含稀土的电机,将在新能源汽车上普及!
- 大战2.5小时!碧桂园旁!溢价61%,总价1.6亿!东瑞竟得吉安一住宅地块!
- 每日看点!语音打字输入法哪种好_语音打字
- 时讯:天津应届生人才落户准迁证如何获取?
- 京东换帅背后,刘强东搭档许冉如何突围?-焦点信息
- 电梯龙头股有哪些?三只电梯龙头股名单(5/19)
- 襄阳城管推出“普法十招”助力全面建设法治城市
- 全球热点评!PYOR获得400万美元种子轮融资
- 地标集群相继落地,上海真如副中心“形象初显”
- 承德露露董秘回复:公司目前推出的新产品经典低糖杏仁露、核桃露及杏仁奶采用的是两片铝罐包装_快看
- 阻燃板15mm厚价格 阻燃板的规格厚度价钱急急_天天观点
- 新记录种!福建发现丹霞梧桐群落
- 3840hz 超高频 PWM 调光落地,新机即将首发|聚看点
- 签了合同辞退赔偿标准是什么?劳动合同特征是什么?
- 今日热闻!国学夏令营 | 你知道孔子最喜爱的两个弟子是谁吗?
- 全球热点!“临夏的发展一年比一年好”
- 外交部:G7对发展中国家口惠而实不至 并非新鲜事
- 葛兰、郑澄然、归凯、朱少醒等调仓新动!恒瑞医疗被持续加仓、杰瑞股份遭抛弃 环球新要闻
- 浙江设立制造业领域最高荣誉“天工鼎” 宁波成功夺“鼎” 资讯
- 生产一款面膜需要哪些流程(面膜是如何生产的简介介绍)_观热点
- 环球热头条丨证券行业 业绩向上 价值重估
- 世界球精选!人形电脑天使心结局
- 【环球时快讯】“毒液流”DC英雄:蝙蝠侠黑化长翅膀,你看超人多瘆人!
- 世界滚动:net framework_mp4se net
- 厦门到广州动车时刻表_厦门到广州动车
- 2023年长春市残疾人春季招聘会暨高校残疾人毕业生就业洽谈会成功举办-环球关注
- 观热点:跟着习近平总书记“打卡”红色博物馆
- 全球今热点:文创产品包括哪些_文创产品包括哪些简介介绍
- 热头条丨前4个月全国财政收入延续平稳回升态势
- 天天观天下!冰川网络涨20% 机构净卖出7473万元
- 理响中国|“党校公开课·党史启迪未来”系列短视频 古田:人民军队定型铸魂的地方_当前热议
- 世界即时看!大宗交易:机构账户买入汤姆猫204.22万元(05-18)
- 全球观速讯丨经开区:规范夜间渣土运输秩序 维护良好城市环境
- 2023云南会计中级报名收费标准:每人每科56元
- 中超泰山队将战津门虎 崔康熙能否带来换帅如换刀效果
- 发展蚕桑业 鼓起钱袋子
- 扬尼斯阿德托昆博个人资料和图片_扬尼斯阿德托昆博最新篮球明星动态
- 丰巢广告斩获2023 Future LINK「年度优秀数字化营销服务商」 当前要闻
- 【天天聚看点】国家药监局4月共批准注册180个医疗器械产品
- 世界新资讯:中汽协:4月乘用车产销同比分别增长78.5%和87.7%
- 中国创投市场年内最大额VC募资:启明创投完成65亿元基金募集_每日热议
- 柠檬云财务软件用户量突破350万,荣膺“数字化创新优秀产品”大奖! 环球通讯
- 全国多地农产品迎来丰收 农户们忙采收分享丰收喜悦
- 华丽家族股价触及涨停 前一日股东大会18项议案均被否
- 安徽省阜阳市市场监管局:计量服务民生 助企纾困解难
- 塞尔达传说王国之泪山麓驿站人马位置视频攻略
- 翔鹭钨业(002842):5月18日技术指标出现看涨信号-“红三兵” 世界观焦点
- 拜登称冀最迟周日就美债务上限缔协议,麦卡锡认为“可行”_当前独家
- 【环球新要闻】午评:指数缩量筑底,AI虚晃一枪,月底或延续。
- 当前快播:加强医美监管 立规建制守护“高颜值”
- 中年人的交友app 中年女人交友大叔交友闺蜜交友我觉得登录和注册此网太麻烦了
X 关闭
资讯
X 关闭

