版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、QTableWidgettable->setSelectionMode(QAbstractItemView:SingleSelection) table.horizontalHeader()->setResizeMode(QheaderView:Fixed); table.horizontalHeader()->setStretchLastSection(true); table.setEditTrigger(QAbstractItemView:NoEditTriggers); table.setShowGrid(false); 1.QTableWidget不能在mainwi
2、ndow中随主窗口的大小变化? 解决:在表格外部添加布局。 代码:tableWidget = new QTableWidget; tableWidget ->setObjectName(QString:fromUtf8("tableWidget"); QVBoxLayout *verticalLayout; verticalLayout->addWidget(tableWidget );2.将表格变为禁止编辑: tableWidget->setEditTriggers(QAbstractItemView:NoEditTriggers); (参数含义:QAb
3、stractItemView:NoEditTriggers-不能对表格内容进行修改 QAbstractItemView:CurrentChanged-任何时候都能对单元格修改 QAbstractItemView:DoubleClicked-双击单元格 QAbstractItemView:SelectedClicked-单击已选中的内容 QAbstractItemView:EditKeyPressed- QAbstractItemView:AnyKeyPressed-按下任意键就能修改 QAbstractItemView:AllEditTriggers-以上条件全包括)3.设置表格为整行选择 t
4、ableWidget->setSelectionBehavior(QAbstractItemView:SelectRows); /整行选中的方式 (参数含义:AbstractItemView.SelectItems-选中单个单元格 QAbstractItemView.SelectRows-选中一行 QAbstractItemView.SelectColumns-选中一列).4.单个选中和多个选中的设置: tableWidget->setSelectionMode(QAbstractItemView:ExtendedSelection); /设置为可以选中多个目标 (参数含义:QAb
5、stractItemView.NoSelection-不能选择 QAbstractItemView.SingleSelection-选中单个目标 QAbstractItemView.MultiSelection-选中多个目标 QAbstractItemView.ExtendedSelection/QAbstractItemView.ContiguousSelection 的区别不明显,主要功能是正常情况下是单选,但按下Ctrl或Shift键后,可以多选)5.表格表头的显示与隐藏 对于水平或垂直方法的表头,可以用以下方式进行 隐藏/显示 的设置: tableWidget->vertical
6、Header()->setVisible(false); /隐藏列表头 tableWidget->horizontalHeader()->setVisible(false); /隐藏行表头 注意:需要 #include <QHeaderView>6.对表头文字的字体、颜色进行设置 QTableWidgetItem *columnHeaderItem0 = tableWidget->horizontalHeaderItem(0); /获得水平方向表头的Item对象 columnHeaderItem0->setFont(QFont("Helvet
7、ica"); /设置字体 columnHeaderItem0->setBackgroundColor(QColor(0,60,10); /设置单元格背景颜色 columnHeaderItem0->setTextColor(QColor(200,111,30); /设置文字颜色 注意:需要 #include <QHeaderView>7.在单元格里加入控件: QComboBox *comBox = new QComboBox(); comBox->addItem("Y"); comBox->addItem("N"
8、;); tableWidget->setCellWidget(0,2,comBox); 8.单元格中添加图片:tableWidget->setItem(row,0,new QTableWidgetItem (QIcon ( ": /new/ images/ kingdemo.ico" ),tr("");9设置单元格字体颜色、背景颜色和字体字符: QTableWidgetItem *item = new QTableWidgetItem("Apple"); item->setBackgroundColor(QColor
9、(0,60,10); item->setTextColor(QColor(200,111,100); item->setFont(QFont("Helvetica"); tableWidget->setItem(0,3,item); 另:如果需要对所有的单元格都使用这种字体,则可以使用 tableWidget->setFont(QFont("Helvetica");10.设置单元格内文字的对齐方式 水平对齐方式有: Constant Value Description Qt:AlignLeft / 0x0001 Aligns wi
10、th the left edge. Qt:AlignRight / 0x0002 Aligns with the right edge. Qt:AlignHCenter / 0x0004 Centers horizontally in the available space. Qt:AlignJustify / 0x0008 Justifies the text in the available space. 垂直对齐方式: Constant Value Description Qt:AlignTop /0x0020 Aligns with the top. Qt:AlignBottom /0
11、x0040 Aligns with the bottom. Qt:AlignVCenter /0x0080 Centers vertically in the available space. 如果两种都要设置,只要用 Qt.AlignHCenter | Qt.AlignVCenter 的方式即可11.合并单元格: tableWidget->setSpan(0, 0, 3, 1) # 其参数为: 要改变单元格的1行数、2列数,要合并的3行数、4列数(0,0,3,1)12.设置单元格的大小 首先,可以指定某个行或者列的大小: tableWidget->setColumnWidth(3
12、,200); tableWidget->setRowHeight(3,60);还可以将行和列的大小设为与内容相匹配: tableWidget->resizeColumnsToContents(); tableWidget->resizeRowsToContents();13.获得单击单元格的内容 通过实现 itemClicked (QTableWidgetItem *) 信号的槽函数,就可以获得鼠标单击到的单元格指针,进而获得其中的文字信息connect(tableWidget,SIGNAL(itemDoubleClicked(QTreeWidgetItem*,int),th
13、is,SLOT(getItem(QTreeWidgetItem*,int);/将itemClicked信号与函数getItem绑定14.QTableWidget要调整表格行宽主要涉及以下函数 tableWidget->horizontalHeader()->setResizeMode(QHeaderView:Stretch);/使列完全填充并平分 tableWidget->verticalHeader()->setResizeMode(QHeaderView:Stretch);/ 行自适应宽度 tableWidget->resizeColumnsToContent
14、s(); /根据内容调整列宽 tableWidget->resizeColumnToContents(int col);/根据内容自动调整给定列宽 tableWidget->horizontalHeader()->setResizeMode/把给定列设置为给定模式 主要模式有Stretch和Fixed15.添加表头内容: 方法一: QStringList header; header<<""<<tr("1")<<tr("2")<<tr("3")<
15、;<tr("4)<<tr("5"); 方法二: tableWidget->setHorizontalHeaderLabels(QStringList() << tr("1")<<tr("2")<<tr("3")<<tr("4)<<tr("5");16.清除: tableWidget->clear();/清除所有可见数据(包括表头),行还在 tableWidget->clearCon
16、tents();/只清除表中数据,不清除表头内容 tableWidget->setRowCount(0);/连行也清除掉15.一些零碎的知识点代码: int row = tableWidget->rowCount();/获取表格中当前总行数tableWidget->insertRow(row)/添加一行 tableWidget->setRowCount(row+1);/添加一行 tableWidget->removeRow(row);/清除已有的行列 Int row1 = tableWidget->currentItem()->row();/当前选中行
17、 bool focus = tableWidget->isItemSelected(tableWidget->currentItem();/判断是否选中一行 QString proName = tableWidget->item(row, col)->text();/获取某一格内容 setShowGrid(true);/显示表格线 verticalHeader()->setVisible(false);/隐藏左边垂直 QHeaderView *headerView = horizontalHeader(); headerView->setMovable(fa
18、lse);/去除表头的移动 headerView->resizeSection(0,284);/设置第一列宽 headerView->resizeSection(1,127);/设置第二列宽 headerView->setResizeMode(QHeaderView:Fixed);/列表不能移动 headerView->setClickable(false);/不响应鼠标单击 setEditTriggers(QTableWidget:NoEditTriggers);/不能编辑 setSelectionBehavior(QTableWidget:SelectRows);/
19、一次选中一行 setSelectionMode(QAbstractItemView:SingleSelection);/只能单选 setHorizontalScrollBarPolicy(Qt:ScrollBarAlwaysOff);/去掉水平滚动条 setVerticalScrollMode(QAbstractItemView:ScrollPerItem);/垂直滚动条按项移动 setAutoScroll(false);/去掉自动滚动Qt事件过滤Qt事件模型一个非常强大的功能是:QObject实例在看到它自己的事件之前,可以通过设置另外一个QObject实例先监视这些事件。创建一个事件过滤器
20、包括如下两步:a、通过对目标对象调用installEventFilter()来注册监视对象;b、在监视对象的eventFilter()函数中处理目标对象的事件。事件过滤器一旦注册,发送给目标对象的事件就会在它们到达目的地之前先被发送给监视对象的eventFilter()函数。如 test:test() label1->installEventFilter(this); label2->installEventFilter(this); bool test:eventFilter(QObject *target, QEvent *event) if(target = label1 |
21、 target = label2) if(event->type() = QEvent:KeyPress) QKeyEvent *keyevent = static_cast<QKeyEvent*>(event); if(keyevent->key() = Qt:Key_Space) /. return QWidget:eventFilter(target, event); 发送给label1、label2的事件之前会先被发送给test的eventFilter()函数。 很多事件类型,都可以对它们进行传递,如果在事件到达它的目标对象之前没有得到处理,或者也没有被它自己的目标对象处理,那么就会重复整个事件的处理过程,但
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-江西-江西机械热加工四级(中级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-江西-江西保健按摩师五级(初级工)历年参考题库含答案详解3套试卷
- 在岗护士考助产技术证吃香吗?助产技术备考题库在哪找
- 新生儿每一天护理流程
- 缺血性心肌病CI治疗指南
- 脑瘫功能康复评定
- 调查报告-个人信用2026(3篇)
- 血脂异常患者随访管理诊疗进展 课件
- 集中健康活动
- 电力安全规章手册讲解
- 养鸡场成本核算与效益分析手册 (标准版)
- 2026年看护辅警人员笔试题库及答案参考
- 私募股权投资基金投资房地产企业的风险解析与防范策略
- 2026年中国铁路南宁局铁路局校园招聘真题
- 采购文件三级审核制度
- 《数据中心锂离子电池消防安全白皮书》
- T∕SMA 0078-2025 高压电缆接地回路电阻检测导则
- 工业信息安全制度
- 2025年医院网络安全工作责任制实施细则
- DB44∕T 2661-2025 高速公路工程地质勘察规范
- OA使用培训课件
评论
0/150
提交评论