当前位置: 首页 > news >正文

QT学习3

QT项目视图

1、List View清单视图

private:QListView *listview1;
private slots:void slotClickedFunc(const QModelIndex &index);
#include "widget.h"
#include "ui_widget.h"#include <QStringListModel>//字符串列表模型
#include <QStringList>
#include <QMessageBox>//定义一个消息提示框Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);resize(450,250);listview1 = new QListView(this);listview1->setGeometry(20,20,240,160);//设置控件显示位置和控件的大小QStringList qlist;qlist.append("运动类:篮球,足球");qlist.append("娱乐类:看电影,写小说,听音乐");qlist.append("游戏类:五子棋,象棋,扑克");qlist.append("旅游类:国外旅游,国内旅游");//使用数据列表创建数据显示模型进行实现QStringListModel *listmodel = new QStringListModel(qlist);listview1->setModel(listmodel);connect(listview1,&QListView::clicked,this,&Widget::slotClickedFunc);}Widget::~Widget()
{delete ui;
}//模型索引QModelIndex
// 为了确保数据的表示与访问数据的方式是分开的,引入了模型索引的概念。可以通过模型获得的每条信息都由模型索引表示
void Widget::slotClickedFunc(const QModelIndex &index)
{QMessageBox::information(NULL,"兴趣爱好","你的选择是:\n"+index.data().toString());
}

2、Tree View:树视图

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);initTreeViewFunc();
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::initTreeViewFunc()
{//构造一个model:sItemModel = new QStandardItemModel(ui->treeView);sItemModel->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("编号")<<QStringLiteral("初中部 | 高中部"));//创建一级节点到sItemModelQList<QStandardItem*> item1;QStandardItem *item11 = new QStandardItem(QString::number(1));QStandardItem *item12 = new QStandardItem("初中部");item1.append(item11);item1.append(item12);// 对于这个模块添加一行sItemModel->appendRow(item1);//添加一个二级节点添加到第一个一级节点QList<QStandardItem*> item2;QStandardItem *item21 = new QStandardItem(QString::number(2));QStandardItem *item22 = new QStandardItem(QStringLiteral("一年级"));item2.append(item21);item2.append(item22);//添加到第一个一级节点上去item11->appendRow(item2);//三级节点,添加到第一个二级节点QList<QStandardItem*> item3;QStandardItem *item31 = new QStandardItem(QString::number(3));QStandardItem *item32 = new QStandardItem(QStringLiteral("1班"));item3.append(item31);item3.append(item32);//添加到第一个二级节点上去item21->appendRow(item3);//再添加一个三级节点,添加到第一个二级节点QList<QStandardItem*> item4;QStandardItem *item41 = new QStandardItem(QString::number(4));QStandardItem *item42 = new QStandardItem(QStringLiteral("2班"));item4.append(item41);item4.append(item42);//添加到第一个二级节点上去item21->appendRow(item4);//创建一级节点到sItemModelQList<QStandardItem*> item5;QStandardItem *item51 = new QStandardItem(QString::number(2));QStandardItem *item52 = new QStandardItem("高中部");item5.append(item51);item5.append(item52);// 对于这个模块添加一行sItemModel->appendRow(item5);//将这个Model添加到TreeViewui->treeView->setModel(sItemModel);
}

3、Table View:表视图

#include "mainwindow.h"
#include "ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);initTableViewFunc();//调用自定义函数this->setWindowTitle("TableView表视图");
}MainWindow::~MainWindow()
{delete ui;
}void MainWindow::initTableViewFunc()
{//1、添加表头,准备数据模型QStandardItemModel *studentModel = new QStandardItemModel();//设置水平表头,第一个参数为列studentModel->setHorizontalHeaderItem(0,new QStandardItem(QObject::tr("学号")));studentModel->setHorizontalHeaderItem(1,new QStandardItem(QObject::tr("姓名")));studentModel->setHorizontalHeaderItem(2,new QStandardItem(QObject::tr("性别")));studentModel->setHorizontalHeaderItem(3,new QStandardItem(QObject::tr("分数")));//将数据模型绑定到控件QTableView上ui->tableView->setModel(studentModel);//设置表格列的宽度,第0行--》默认为100ui->tableView->setColumnWidth(0,100);//添加数据信息studentModel->setItem(0,0,new QStandardItem("20220001"));studentModel->setItem(0,1,new QStandardItem("张三"));studentModel->setItem(0,2,new QStandardItem("男"));studentModel->setItem(0,3,new QStandardItem("750"));studentModel->setItem(1,0,new QStandardItem("20220002"));studentModel->setItem(1,1,new QStandardItem("李四"));studentModel->setItem(1,2,new QStandardItem("女"));studentModel->setItem(1,3,new QStandardItem("450"));studentModel->setItem(2,0,new QStandardItem("20220003"));studentModel->setItem(2,1,new QStandardItem("王五"));studentModel->setItem(2,2,new QStandardItem("男"));studentModel->setItem(2,3,new QStandardItem("666"));//设定表格不能编辑ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//设定数据模型按照分数列进行排序-->降序studentModel->sort(3,Qt::DescendingOrder);}

4、Column View:列视图(不常用)

5、Undo View:撤销命令视图(不常用)


http://www.xdnf.cn/news/515881.html

相关文章:

  • Socket.IO是什么?适用哪些场景?
  • 基于马尔可夫链的状态转换,用概率模型预测股市走势
  • 2025年- H31-Lc139- 242.回文链表(快慢指针)---java版--需2刷
  • 新型太空电梯——半摆卫星太空电梯 的设计与验证
  • 【Python数据处理系列】输入txt,读取特定字符转换成特定csv数据并输出
  • PointNet++:点云处理的升级版算法
  • WebSocket实时双向通信:从基础到实战
  • 3:OpenCV—视频播放
  • 彻底解决docker代理配置与无法拉取镜像问题
  • 第二章 苍穹外卖
  • Git基础原理和使用
  • 区间带边权并查集,XY4060泄露的测试点
  • elementplus menu 设置 activeindex
  • GO语言语法---For循环、break、continue
  • 计算机组成与体系结构:Snooping-Based Protocols(监听式协议)
  • STM32 OTA 中断向量表重定向
  • Unity3D仿星露谷物语开发45之收集农作物特效
  • 第四天的尝试
  • 【网络】Wireshark练习3 analyse DNS||ICMP and response message
  • 2021ICPC四川省赛个人补题ABDHKLM
  • DeepSeek本地部署全攻略:从零搭建到Web可视化及数据训练
  • AM32电调学习解读八:无感驱动相位波形解析
  • STK手动建链+matlab联调
  • 小麦病害分割数据集labelme格式1882张4类别
  • BGP策略实验练习
  • 学习日志10 java
  • ubuntu中已经存在python3.12.3, 如何安装python3.10.8且命令python3版本切换为python3.10.8
  • MySQL之储存引擎和视图
  • 访问共享打印机提示错误0x00000709多种解决方法(支持win10和win11)
  • minicom串口调试助手