服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C/C++ - C++中的Qt QTableView详解

C++中的Qt QTableView详解

2022-10-26 14:19Mr.codeee C/C++

这篇文章主要介绍了Qt QTableView详解,主要包括常用接口,设置item属性,右键弹出菜单,结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一.常用接口

1.设置model,添加model数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
model = new QStandardItemModel(this);
model->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性别"<<"年龄");
QStandardItem *item00 = new QStandardItem("张三");
QStandardItem *item10 = new QStandardItem("张四");
QStandardItem *item20 = new QStandardItem("张五");
QStandardItem *item01 = new QStandardItem("男");
QStandardItem *item11 = new QStandardItem("女");
QStandardItem *item21 = new QStandardItem("男");
QStandardItem *item02 = new QStandardItem("15");
QStandardItem *item12 = new QStandardItem("14");
QStandardItem *item22 = new QStandardItem("16");
model->setItem(0,0,item00);
model->setItem(1,0,item10);
model->setItem(2,0,item20);
model->setItem(0,1,item01);
model->setItem(1,1,item11);
model->setItem(2,1,item21);
model->setItem(0,2,item02);
model->setItem(1,2,item12);
model->setItem(2,2,item22);
ui->tableView->setModel(model);

C++中的Qt QTableView详解

 2.节点可以带一些数据

?
1
2
3
4
QStandardItem *item1 = new QStandardItem("张三");  
//item1->setData("name");
//item1->setIcon();
//item1->setFlags();

3.一些别的常用设置

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    //去除选中虚线框
    ui->tableView->setFocusPolicy(Qt::NoFocus);
 
    //设置列宽
    ui->tableView->setColumnWidth(0,100);
    ui->tableView->setColumnWidth(1,100);
    ui->tableView->setColumnWidth(2,200);
//    //需要打开右键菜单属性,则必须设置
//    ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
    //设置最后一栏自适应长度
    ui->tableView->horizontalHeader()->setStretchLastSection(true);
    //设置列内容自适应宽度
    //ui->tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::ResizeToContents);
    //开启交替行背景色,在设置style为交替颜色时必须开启
    //ui->tableView->setAlternatingRowColors(true);
    //设置整行选中
    ui->tableView->setSelectionBehavior(QAbstractItemView::SelectRows);
    //设置选择多行,按ctrl键
    ui->tableView->setSelectionMode(QAbstractItemView::ExtendedSelection);

4.自动调整行高和列宽

?
1
2
3
4
resizeColumnsToContents()://自动调整所有列的宽度,以适应其内容。
resizeColumnToContents(int column)://自动调整列号为 co/www 的列的宽度。
resizeRowsToContents()://自动调整所有行的高度,以适应其内容。
resizeRowToContents(int row)://自动调整行号为 raw 的行的高度。

5.设置表格不可编辑

?
1
ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);

6.设置行列头不显示

?
1
2
ui->tableView->horizontalHeader()->setVisible(false);//是否显示水平表头
ui->tableView->verticalHeader()->setVisible(false);//是否显示垂直表头

二.设置item属性

?
1
2
3
4
5
6
7
8
9
10
11
12
QStandardItem *item01 = new QStandardItem("男");
QFont font = item01->font();
//设置为粗体
font.setBold(true);
//字体大小
font.setPointSize(12);
//设置字体
item01->setFont(font);
//设置字体颜色
item01->setForeground(QBrush(QColor(255, 0, 0)));
//文本对齐格式
item01->setTextAlignment(Qt::AlignHCenter | Qt::AlignVCenter);

C++中的Qt QTableView详解

 三.右键弹出菜单

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//打开右键菜单属性
ui->tableView->setContextMenuPolicy(Qt::CustomContextMenu);
 
//右键菜单
menu = new QMenu(ui->tableView);
menu->addAction("添加");
menu->addAction("删除");
//响应右键菜单信号槽
connect(ui->tableView,&QTableView::customContextMenuRequested,
      this,&Widget::slotCustomContextMenuRequested);
void Widget::slotCustomContextMenuRequested(const QPoint &pos)
{
    QPoint p;
    p.setX(pos.x());
    p.setY(pos.y() + menu->height() / 2 );
    menu->exec(ui->tableView->mapToGlobal(p));
}

四.源码

QTableView详解-C++文档类资源

到此这篇关于Qt QTableView详解的文章就介绍到这了,更多相关Qt QTableView详解内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/wzz953200463/article/details/123645541

延伸 · 阅读

精彩推荐
  • C/C++C++ Primer学习记录之变量

    C++ Primer学习记录之变量

    这篇文章主要为大家介绍了C++Primer之变量,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助...

    好梦不深5882022-08-13
  • C/C++C++ 实现球迷 今日头条面试题

    C++ 实现球迷 今日头条面试题

    这篇文章主要介绍了C++实现球迷今日头条面试题功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下...

    FXY_ssf7712021-07-01
  • C/C++VsCode配置C++/Cmake的步骤详解

    VsCode配置C++/Cmake的步骤详解

    本文分步骤给大家介绍VsCode配置C++/Cmake的方法,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...

    Gavynlee5722021-12-03
  • C/C++C语言字符函数与字符串函数详解

    C语言字符函数与字符串函数详解

    这篇文章主要给大家介绍了关于C语言字符/字符串的相关函数,文中通过示例代码总结的非常详细,对大家学习或者使用C语言具有一定的参考学习价值,需...

    再吃一个橘子8932022-01-07
  • C/C++C语言 位域详解及示例代码

    C语言 位域详解及示例代码

    本文主要介绍C语言 位域的知识,这里整理了相关资料,并附示例代码及详解,有兴趣的小伙伴可以参考下...

    C语言中文网7072021-04-14
  • C/C++详解C++的String类的字符串分割实现

    详解C++的String类的字符串分割实现

    这篇文章主要介绍了详解C++的String类的字符串分割实现的相关资料,需要的朋友可以参考下...

    yanzi12256276992021-05-21
  • C/C++详解c++中gmock单元测试框架

    详解c++中gmock单元测试框架

    这篇文章我们给大家分享了关于c++种gmock单元测试框架的相关知识点内容,有兴趣的朋友们学习下。...

    Solid7142021-07-01
  • C/C++C语言中关于动态内存分配的详解

    C语言中关于动态内存分配的详解

    动态内存是指在堆上分配的内存,而静态内存是指在栈上分配的内存。栈上分配的内存是由系统分配和释放的,空间有限,在复合语句或函数运行结束后就...

    飞人01_014832022-01-06