Qt的QTabelWidget
2015-11-19 23:06
387 查看
QTableWidget的用法总结 http://blog.csdn.net/zb872676223/article/details/39959061
【Qt】在QTableWidget中添加QCheckBox并使其居中显示 /article/5187563.html
QTableWidget是QT对话框设计中常用的显示数据表格的控件。
学习QTableWidget就要首先看看QTableView控件(控件也是有”家世“的!就像研究人一样一样的),因为QTableWidget继承于类QTableView。
两者主要区别是QTableView可以使用自定义的数据模型来显示内容(也就意味着使用时先要通过setModel来绑定数据源),而QTableWidget则只能使用标准的数据模型。
QTableWidget单元格数据是QTableWidgetItem对象来实现的(即就是不需要数据源,单元格内的信息需要逐个填充即可)。
这主要由于QTableView类中有setModel成员函数,而到了QTableWidget类中,该成员函数变成了私有。
使用QTableWidget就离不开QTableWidgetItem。QTableWidgetItem用来表示表格中的其中一个单元格,整个表格都需要用逐个单元格对象QTableWidgetItem构建起来。
【2】QTableWidget控件属性
(1)禁止编辑表格
在默认情况下,表格里的字符是可以更改的。
比如双击一个单元格,就可以修改原来的内容,如果想禁止用户的这种操作,让这个表格对用户只读,可以这样:
(2)设置表格为选择整行
(3)设置单个选中和多个选中
单个选中意味着每次只可以选中一个单元格,多个就是相当于可以选择”一片“那种模式。
(4)表格表头的显示与隐藏
对于水平或垂直方向的表头,如果不想显示可以用以下方式进行(隐藏/显示)设置:
(5)设置具体单元格中字体的对齐方式
(6)设置具体单元格中字体格式
(7)设置具体单元格的值
(8)把QTableWidgetItem对象内容转换为QString
(9)具体单元格中添加控件
(11)合并单元格
(12)具体单元格中插入图片
(13)设置显示网格
(14)设置滚动条
(15)设置列标签
(16)设置行和列的大小设为与内容相匹配
(17)设置字体
(18)获取某一单元格的内容
(19) 批量处理表格中的元件
【Qt】在QTableWidget中添加QCheckBox并使其居中显示 /article/5187563.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; } }
相关文章推荐
- MQTT常见问题
- 关于Qt的事件循环以及QEventLoop的简单使用
- pyqt学习
- QT无法编译#include *.moc的项目,报No such file or directory
- VTK6.2 Qt5.4.0 VS2013
- Qt从零开始制作串口调试助手-(第十章、串口接收数据处理)-Creator_Ly
- QT中文乱码
- Qt5.5制作简单的屏幕截图程序
- Qt中快捷键使用
- Qt环境下利用OpenGL显示三维模型
- Qt Creator 调试器未设置的解决办法(转
- Qt 容器类学习
- QtCreator下复制文件夹的一个BUG
- QtCreator下资源路径设置
- Qwt 折线图 波形图 柱状图示例效果
- QT QPushButton点击事件的实现
- Ⅰ.2.6.8 如何测试QTable (Qt 3)
- QTextEidt添加图片
- QTextEidt添加图片 拖动图片
- QTextEdit中添加图片