QTableWidget的用法总结  http://blog.csdn.net/zb872676223/article/details/39959061

【Qt】在QTableWidget中添加QCheckBox并使其居中显示  http://www.cnblogs.com/it_mac/archive/2012/11/21/2780972.html

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

QTableWidget控件总结

 

【1】QTableWidget简介

QTableWidget是QT对话框设计中常用的显示数据表格的控件。

学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研究人一样一样的),因为QTableWidget继承于类QTableView。

两者主要区别是QTableView可以使用自定义的数据模型来显示内容(也就意味着使用时先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型。

QTableWidget单元格数据是QTableWidgetItem对象来实现的(即就是不需要数据源,单元格内的信息需要逐个填充即可)。

这主要由于QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。

使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的其中一个单元格,整个表格都需要用逐个单元格对象QTableWidgetItem构建起来。

【2】QTableWidget控件属性

(1)禁止编辑表格

在默认情况下,表格里的字符是可以更改的。

比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样:

1 ui.qtablewidget->setEditTriggers(QAbstractItemView::NoEditTriggers);

(2)设置表格为选择整行

1 /*设置表格为整行选中*/
2 ui.qtablewidget->setSelectionBehavior(QAbstractItemView::SelectRows);

(3)设置单个选中和多个选中

单个选中意味着每次只可以选中一个单元格,多个就是相当于可以选择”一片“那种模式。

1 /*设置允许多个选中*/
2 ui.qtablewidget->setSelectionMode(QAbstractItemView::ExtendedSelection);

(4)表格表头的显示与隐藏

对于水平或垂直方向的表头,如果不想显示可以用以下方式进行(隐藏/显示)设置:

1 ui.qtablewidget->verticalHeader()->setVisible(true);
2 ui.qtablewidget->horizontalHeader()->setVisible(false);

(5)设置具体单元格中字体的对齐方式

1 ui.qtablewidget->item(0, 0)->setTextAlignment(Qt::AlignHCenter);

(6)设置具体单元格中字体格式

1 ui.qtablewidget->item(1, 0)->setBackgroundColor(QColor(0,60,10));
2 ui.qtablewidget->item(1, 0)->setTextColor(QColor(200,111,100));
3 ui.qtablewidget->item(1, 0)->setFont(QFont("Helvetica"));

(7)设置具体单元格的值

1 ui.qtablewidget->setItem(1, 0, new QTableWidgetItem(str));

(8)把QTableWidgetItem对象内容转换为QString

1 QString str =ui.qtablewidget->item(0, 0)->data(Qt::DisplayRole).toString();

(9)具体单元格中添加控件

1 QComboBox *comBox = new QComboBox();
2 comBox->addItem("F");
3 comBox->addItem("M");
4 ui.qtablewidget->setCellWidget(0,3,comBox);

(11)合并单元格

1 //合并单元格的效果
2 ui.qtablewidget->setSpan(2, 2, 3, 2);
3 //第一个参数:要改变的单元格行数
4 //第二个参数:要改变的单元格列数
5 //第三个参数:需要合并的行数
6 //第四个参数:需要合并的列数

(12)具体单元格中插入图片

ui.qtablewidget->setItem(3, 2, new QTableWidgetItem(QIcon("images/music.png"), "Music"));

(13)设置显示网格

ui.qtablewidget->setShowGrid(true);//显示表格线

(14)设置滚动条

ui.qtablewidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);//去掉水平滚动条

(15)设置列标签

 1     //初始化界面
2 QStringList HStrList;
3 HStrList.push_back(QString("name"));
4 HStrList.push_back(QString("id"));
5 HStrList.push_back(QString("age"));
6 HStrList.push_back(QString("sex"));
7 HStrList.push_back(QString("department"));
8
9
10 //设置行列数(只有列存在的前提下,才可以设置列标签)
11 int HlableCnt = HStrList.count();
12 ui.qtablewidget->setRowCount(10);
13 ui.qtablewidget->setColumnCount(HlableCnt);
14
15 //设置列标签
16 ui.qtablewidget->setHorizontalHeaderLabels(HStrList);

(16)设置行和列的大小设为与内容相匹配

1 ui.qtablewidget->resizeColumnsToContents();
2 ui.qtablewidget->resizeRowsToContents();

(17)设置字体

ui.qtablewidget->setFont(font);   //设置字体

(18)获取某一单元格的内容

1 QString strText = ui.qtablewidget->item(0, 0)->text();

(19) 批量处理表格中的元件

 #include "subdialog.h"

 SubDialog::SubDialog(QWidget *parent)
: QDialog(parent)
{
_pUi = new Ui::SubDialogClass;
_pUi->setupUi(this);
connect(_pUi->nameButton,SIGNAL(clicked()),this,SLOT(on_clicjName()));
} void SubDialog::on_clickName()
{
_pUi->nameLabel->setText(QStringLiteral("马超"));
_pUi->nameEdit->setText(QString("ChaoMa"));
}
#include "maindialog.h"
#include "subdialog.h" MainDialog::MainDialog(QWidget *parent)
: QWidget(parent)
{
_pUi = new Ui::MainDialogClass;
_pUi->setupUi(this);
connect(_pUi->showButton,SIGNAL(clicked()),this,SLOT(on_clickShow()));
//connect(_pUi->nameButton,SIGNAL(clicked()),this,SLOT(on_clickName()));
} void MainDialog::on_clickShow()
{
SubDialog dialog;
if(dialog.exec() != QDialog::Accepted)//如果是取消就返回
{
return;
}
}

Qt的QTabelWidget的更多相关文章

  1. 基于Qt Phonon模块实现音乐播放器

    这次使用Qt实现的是一个本地音乐播放器,可以播放下载在计算机本地的音乐,提供了添加歌曲,歌曲列表,清空列表的功能.默认歌曲列表循环播放.音乐播放的实现主要依赖的是Qt 的多媒体框架phonon.该音乐 ...

  2. qt 总结

    Qt中的每个类,都有一个对应的同名头文件,其中包含其类定义.例如要使用QApplication类,则需要在程序中添加" #include <QApplication>" ...

  3. Qt常用控件

    Qt常用控件 QWidget与QFrame QWidget所有图形控件的基类 QFrame与QWidget的区别 QFrame是基本控件的基类, QWidget是QFrame的基类. 因此QFrame ...

  4. QT内省机制、自定义Model、数据库

    本文将介绍自定义Model过程中数据库数据源的获取方法,我使用过以下三种方式获取数据库数据源: 创建 存储对应数据库所有字段的 结构体,将结构体置于容器中返回,然后根据索引值(QModelIndex) ...

  5. Ubuntu 下安装QT

    Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...

  6. Qt安装配置

    Qt Creator: 下载: Qt 5.5.1 for Windows 32-bit(MinGW 4.9.2, 1.0 GB):http://download.qt.io/official_rele ...

  7. Qt信号与槽自动关联机制

    参考链接1:http://blog.csdn.net/skyhawk452/article/details/6121407 参考链接2:http://blog.csdn.net/memory_exce ...

  8. 保持Qt GUI响应的几种方法

    最开始使用Qt时就遇到过QT Gui失去响应的问题,我是用多线程的方式解决的,然而通常来说,多线程是会降低程序的运行速度. 之后,在使用QSqlQuery::execBatch()函数时,Qt Gui ...

  9. Qt 中使用Singleton模式需小心

    在qt中,使用Singleton模式时一定要小心.因为Singleton模式中使用的是静态对象,静态对象是直到程序结束才被释放的,然而,一旦把该静态对象纳入了Qt的父子对象体系,就会导致不明确的行为. ...

随机推荐

  1. iOS 如何根据经纬度来定位位置

    /** *  初始化一个经纬度结构体 */ CLLocationCoordinate2D center = {[latitudeTF.text floatValue],[longitudeTF.tex ...

  2. MySQL:MySQL和SQL Server的区别

    导读:接下来的网上商城的项目,需要用到MySQL数据库了.这个对于我来说,是一个新接触的东西,按照惯例,在刚开始学习一个东西的时候,先从宏观上去了解它.本篇博客,先介绍SQL Server的基本内容, ...

  3. ubuntu多网卡绑定

    这是最近碰到这个问题,需要将两张网卡绑定,共用一个IP,实现冗余效果.实际上linux双网卡的绑定模式有7中,而在这里常用的是 active-backup linux有七种网卡绑定模式:0. roun ...

  4. 【Python】django安装

    官方下载:https://www.djangoproject.com/download/ 报错 [root@test Django-]# python setup.py install Traceba ...

  5. linux ---用uniq实现文件的并集和交集

    1. 取出两个文件的并集(重复的行只保留一份) 2. 取出两个文件的交集(只留下同时存在于两个文件中的文件) 3. 删除交集,留下其他的行 1. cat file1 file2 | sort | un ...

  6. 008sudo用户管理

    1.Sudo是Unix/Linux平台上一个非常有用的工具,它允许系统管理员分配给普通用户一些合理的权利,让它们执行一些只有超级用户或其他特许用户才能完成的任务(主要体现为命令),比如,运行一些像mo ...

  7. java 求第n小的质数

    package a小米; import java.util.Scanner; public class prime { public static boolean isPrime(int n){ fo ...

  8. Objective-C中的self和super

    1.有过面向对象的人知道,self相当于this,super相当于调用父类的方法 2.self是类的隐藏的参数,指向当前调用方法的类,另一个隐藏参数是_cmd,代表当前类方法的selector. su ...

  9. 认识php钩子-转白俊遥的博客

    认识php钩子-转载白俊遥的博客 我们先来回顾下原本的开发流程:产品汪搞出了一堆需求:当用户注册成功后需要发送短信.发送邮件等等:然后聪明机智勇敢的程序猿们就一扑而上:把这些需求转换成代码扔在 用户注 ...

  10. Git客户端图文详解如何安装配置GitHub操作流程攻略

    收藏自 http://www.ihref.com/read-16377.html Git介绍 分布式 : Git版本控制系统是一个分布式的系统, 是用来保存工程源代码历史状态的命令行工具; 保存点 : ...