Qt5(QTableWidget创建表格)
文章图片
Qt5在窗口创建表格需要用到Table Widget控件,示例代码实现了以下功能,具体情况如上图所示:具体做法如下:
- 设置表格行列数
- 添加内容
- 添加横向表头
- 纵横表头可视化
- 栅格可视化
- 是否可编辑
- 设置表格选择方式(整行或者整列)
- 设置选择目标方式
- 设置选中颜色
- 合并单元格
- 设置滚动条
- 获取单元格内容
- 添加Combox控件
- 添加图片
- 删除行和列
- 清空内容
添加Table Widget控件
打开Qt,新建一个Qt Widgets Application项目,转到设计师模式,从左侧工具栏添加一个Table Widget控件到窗口上,调整Table Widget控件的大小,修改Table Widget控件的对象名为qTableWidget。添加代码 1、添加mainwindow.h代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include namespace Ui {
class MainWindow;
}class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
2、添加mainwindow.cpp代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
//添加头文件
#include
#include
#include
#include MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
setWindowTitle(tr("TableWidget"));
//设置对话框的标题
ui->qTableWidget->setColumnCount(4);
//设置列数
ui->qTableWidget->setRowCount(10);
//设置行数
ui->qTableWidget->setWindowTitle("QTableWidget");
QStringList m_Header;
m_Header<qTableWidget->setHorizontalHeaderLabels(m_Header);
//添加横向表头
ui->qTableWidget->verticalHeader()->setVisible(true);
//纵向表头可视化
ui->qTableWidget->horizontalHeader()->setVisible(true);
//横向表头可视化
//ui->tableWidget->setShowGrid(false);
//隐藏栅格
ui->qTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
//设置编辑方式:禁止编辑表格
ui->qTableWidget->setSelectionBehavior(QAbstractItemView::SelectRows);
//设置表格选择方式:设置表格为整行选中
//ui->qTableWidget->setSelectionBehavior(QAbstractItemView::SelectColumns);
//设置表格选择方式:设置表格为整列选中
ui->qTableWidget->setSelectionMode(QAbstractItemView::SingleSelection);
//选择目标方式
ui->qTableWidget->setStyleSheet("selection-background-color:pink");
//设置选中颜色:粉色for(int rows=0;
rows<10;
rows++)
{
for(int columns=0;
columns<4;
columns++)
{
if(columns==0)
{
ui->qTableWidget->setItem(rows,columns,new QTableWidgetItem("1"));
}
else if(columns==1)
{
ui->qTableWidget->setItem(rows,columns,new QTableWidgetItem("可乐"));
}
else if(columns==2)
{
ui->qTableWidget->setItem(rows,columns,new QTableWidgetItem("女"));
}
else
{
ui->qTableWidget->setItem(rows,columns,new QTableWidgetItem("成都"));
}
}
}
for(int rows=0;
rows<10;
rows++)
{
for(int columns=0;
columns<4;
columns++)
{
ui->qTableWidget->setColumnWidth(columns,125);
ui->qTableWidget->setRowHeight(rows,30);
ui->qTableWidget->item(rows,columns)->setTextAlignment(Qt::AlignCenter);
//居中显示
ui->qTableWidget->item(rows,columns)->setBackgroundColor(QColor(85,170,255));
//设置前景颜色
ui->qTableWidget->item(rows,columns)->setTextColor(QColor(0,0,0));
//设置文本颜色
ui->qTableWidget->item(rows,columns)->setFont(QFont("Helvetica"));
//设置字体为黑体
}
}
ui->qTableWidget->setSpan(2, 2,2 ,1);
//合并单元格
ui->qTableWidget->setItem(2, 2, new QTableWidgetItem(QIcon("E:\\Qt_Project\\QTableWidget\\1.jpg"), "路飞"));
//插入图片
ui->qTableWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//设置水平滚动条
ui->qTableWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//设置垂直滚动条
//设置行和列的大小设为与内容相匹配(如果设置了宽高就不要用了)
//ui->qTableWidget->resizeColumnsToContents();
//ui->qTableWidget->resizeRowsToContents();
QString strText = ui->qTableWidget->item(1, 1)->text();
//获取单元格的内容
qDebug()<<"单元格内容:"setRowCount(10);
ui->qTableWidget->setColumnCount(HlableCnt);
//设置列标签
ui->qTableWidget->setHorizontalHeaderLabels(HStrList);
//把QTableWidgetItem对象内容转换为QString
//QString str =ui->qTableWidget->item(0,0)->data(Qt::DisplayRole).toString();
//具体单元格中添加ComboBox控件,下拉列表
QComboBox *comBox = new QComboBox();
comBox->addItem("成都");
comBox->addItem("重庆");
ui->qTableWidget->setCellWidget(0,3,comBox);
//ui->qTableWidget->removeColumn(0);
//删除列
//ui->qTableWidget->removeRow(0);
//删除行
//ui->qTableWidget->clear();
//清空掉表格内所有内容,包括标题头
//ui->qTableWidget->clearContents();
//这个清空所有内容不包括标题头
}MainWindow::~MainWindow()
{
delete ui;
}
修改版
文章图片
修改版完整代码:
GItHub下载:https://github.com/MarsXiaolei/QtCode/tree/master/QTableWidget【Qt5(QTableWidget创建表格)】
推荐阅读
- django-前后端交互
- IDEA|IDEA 创建工程
- 创建缔造完美教室,让每一间教室都闪闪发光
- 基于PyQT5制作一个桌面摸鱼工具
- Servlet原理|Servlet原理 二(Web应用与创建Servlet实例)
- 企业为什么要融资
- 热点文章|鸢尾花预测(如何创建机器学习Web应用程序())
- 诚实表达,创建连接维护界限
- FTP创建
- 脚手架工具,Yeoman