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

网站建设及安全规范百度关键字搜索排名

网站建设及安全规范,百度关键字搜索排名,可以做行程的网站,网络建设与维护是什么工作QT-QTreeView使用方法 QTreeView: 用于显示树状结构数据,适用于树状结构数据的操作。 一、初始化 ​ 利用QStandardlternModel来初始化数据,标准的基于项数据的数据模型类, 每个项数据可以是任何数据类型。 // 初始化model QStandardItem…

QT-QTreeView使用方法

QTreeView: 用于显示树状结构数据,适用于树状结构数据的操作。

一、初始化

​ 利用QStandardlternModel来初始化数据,标准的基于项数据的数据模型类, 每个项数据可以是任何数据类型。

// 初始化model
QStandardItemModel* m_standardItemModel = new QStandardItemModel();// 使用model设置QTreeView表头
m_standardItemModel->setHorizontalHeaderLabels(QStringList(QStringLiteral("资源"))); // TreeView控件载入model
ui.m_treeView->setModel(m_standardItemModel);// 展开数据
ui.m_treeView->expandAll();

二、节点添加数据

​ 利用QStandardItem创建根节点与子节点的Item,并向内填充数据。数据类型可以为QString等字符,也可以是常规的变量类型。

// 创建根节点,抽象Item,并没有实际数据
QStandardItem* itemRoot = m_standardItemModel->invisibleRootItem();// 创建并添加Item的第一个子节点
QStandardItem* itemCam = new QStandardItem(QStringLiteral("相机"));
itemRoot->appendRow(itemCam);// 向第一个子节点itemCam添加子节点数据
QList<QStandardItem*> camList;
camList.append(new QStandardItem("cam1"));
camList.append(new QStandardItem("cam2"));
camList.append(new QStandardItem("cam3"));
itemCam->appendRows(camList);// 创建并添加Item的第二个子节点
QStandardItem* itemImg = new QStandardItem(QStringLiteral("图片"));
itemRoot->appendRow(itemImg);// 向第二个子节点itemImg添加子节点数据
QList<QStandardItem*> imgList;
imgList.append(new QStandardItem("img1"));
imgList.append(new QStandardItem("img2"));
imgList.append(new QStandardItem("img3"));
itemImg->appendRows(imgList);

显示如下:

三、QTreeView节点鼠标点击事件

1.1 鼠标单击事件响应类型

1、当我们将鼠标停靠在指定节点内并点击时,我们需要触发鼠标选中的item发生变化,此时会有QModelInex发生变化。

相关参数详解:

参数

功能

QModelIndex&

返回item的row(), colmun()以及父节点

m_treeViewz->selectionModel()

选中当前鼠标单击的TreeView的model item项

&QitemModel::currentChanged

鼠标选择item事件响应

&QItemSelectionModel::currentChanged

跟踪视图中的选定项

代码如下:

// 鼠标左键单击槽函数
void _on_image_tree_currentChanged(const QModelIndex& current, const QModelIndex& previous); // 槽函数连接
connect(ui.m_treeView->selectionModel(), &QitemModel::currentChanged, this, &on_image_tree_currentChanged);// 槽函数
QtDemos::on_image_tree_currentChanged()
{// 你的操作:// 从索引index里面获得item指针,model是tree的数据model,这里item数据类型为QStandradItemModel*QModelIndex index = current.sibling(current.row(), 0);          // 获取当前item的子节点index note:子节点只有一行的情况下QStandardItem* item = mTreeViewModel->itemFromIndex(index);     // 根据index获取当前itemif(item){// 处理代码// int indexCurrentItem = index.row() 	// 获取item的行号// QString text = item->text(); 		// 获取item的文本// m_standardItemModel->itemFromIndex(index)->text() // 通过index获取item文本}
}

四、其他操作

1、节点设置checkBox

itemCam->setCheckable(true);
itemImg->setCheckable(true);

2、节点添加图标

【note】:只能添加png, jpg等格式文件,无法添加.ico图标文件

itemCam->setIcon(QIcon("C:/Users/admin/Desktop/Alexnet_Structure.png"));

3、节点不可编辑

ui->m_treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);

完整代码:

4、右键菜单

//打开右键菜单属性
ui->treeView->setContextMenuPolicy(Qt::CustomContextMenu);//右键菜单
menu = new QMenu(ui->treeView);
menu->addAction("添加");
menu->addAction("删除");

最终效果

五、完整代码

QtDemos.h

#pragma once#include <QtWidgets/QMainWindow>
#include "ui_QtDemos.h"
#include <QStandardItemModel>
#include <QMenu>class QtDemos : public QMainWindow
{Q_OBJECTpublic:QtDemos(QWidget *parent = Q_NULLPTR);private:Ui::QtDemosClass ui;private slots:// QTreeView鼠标左键选中子节点事件响应槽函数void _on_m_treeView_current_changed(const QModelIndex& current, const QModelIndex& previous);void _on_m_treeView_MenuPopup(const QPoint &pos);
};

QtDemos.cpp

#include "QtDemos.h"
QtDemos::QtDemos(QWidget *parent): QMainWindow(parent)
{ui.setupUi(this);// 1.初始化model
QStandardItemModel* m_standardItemModel = new QStandardItemModel();// 2.使用model设置QTreeView表头
m_standardItemModel->setHorizontalHeaderLabels(QStringList(QStringLiteral("资源"))); // 3.创建根节点,抽象Item,并没有实际数据
QStandardItem* itemRoot = m_standardItemModel->invisibleRootItem();// 4.创建并添加Item的第一个子节点
QStandardItem* itemCam = new QStandardItem(QStringLiteral("相机"));
itemRoot->appendRow(itemCam);// 5.向第一个子节点itemCam添加子节点数据
QList<QStandardItem*> camList;
camList.append(new QStandardItem("cam1"));
camList.append(new QStandardItem("cam2"));
camList.append(new QStandardItem("cam3"));
itemCam->appendRows(camList);// 6.创建并添加Item的第二个子节点
QStandardItem* itemImg = new QStandardItem(QStringLiteral("图片"));
itemRoot->appendRow(itemImg);// 7.向第二个子节点itemImg添加子节点数据
QList<QStandardItem*> imgList;
imgList.append(new QStandardItem("img1"));
imgList.append(new QStandardItem("img2"));
imgList.append(new QStandardItem("img3"));
itemImg->appendRows(imgList);// 8.TreeView控件载入model
ui.m_treeView->setModel(m_standardItemModel);// 9.展开数据
ui.m_treeView->expandAll();// 槽函数
connect(ui.m_treeView->selectionModel(), &QItemSelectionModel::currentChanged, this, &QtDemos::_on_m_treeView_current_changed);
connect(ui.m_treeView, &QTreeView::customContextMenuRequested, this, &QtDemos::_on_m_treeView_MenuPopup);// 其他操作// 节点设置checkBox
itemCam->setCheckable(true);
itemImg->setCheckable(true);// 节点设置图标
itemCam->setIcon(QIcon("C:/Users/admin/Desktop/Alexnet_Structure.png"));// 只能添加png, jpg等格式文件,无法添加.ico图标文件// 节点不可编辑
ui.m_treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);// 右键菜单
ui.m_treeView->setContextMenuPolicy(Qt::CustomContextMenu);
}void QtDemos::_on_m_treeView_current_changed(const QModelIndex& current, const QModelIndex& previous)
{// 你的操作 ...QModelIndex index = current.sibling(current.row(), 0); //子节点只有一行的情况下
}void QtDemos::_on_m_treeView_MenuPopup(const QPoint& pos)
{QMenu* menu = new QMenu(ui.m_treeView);menu->addAction(QStringLiteral("添加"));menu->addAction(QStringLiteral("删除"));
menu->exec(ui.m_treeView->mapToGlobal(pos));
}


文章转载自:
http://fortran.c7497.cn
http://onrush.c7497.cn
http://licensee.c7497.cn
http://keystroke.c7497.cn
http://homocercy.c7497.cn
http://decomposable.c7497.cn
http://bank.c7497.cn
http://dayak.c7497.cn
http://competence.c7497.cn
http://sorbose.c7497.cn
http://doek.c7497.cn
http://sporadical.c7497.cn
http://maladjusted.c7497.cn
http://acicula.c7497.cn
http://lairage.c7497.cn
http://goniometer.c7497.cn
http://djakarta.c7497.cn
http://rotifer.c7497.cn
http://abandoner.c7497.cn
http://uncurable.c7497.cn
http://dextrorotation.c7497.cn
http://scoresheet.c7497.cn
http://siblingship.c7497.cn
http://complicate.c7497.cn
http://heritability.c7497.cn
http://haloid.c7497.cn
http://kilted.c7497.cn
http://halavah.c7497.cn
http://cuprite.c7497.cn
http://therian.c7497.cn
http://tend.c7497.cn
http://tyrrhene.c7497.cn
http://aok.c7497.cn
http://explanate.c7497.cn
http://interference.c7497.cn
http://unpeace.c7497.cn
http://hurst.c7497.cn
http://nepenthe.c7497.cn
http://incipient.c7497.cn
http://jeanne.c7497.cn
http://grilse.c7497.cn
http://buccaneerish.c7497.cn
http://honorand.c7497.cn
http://fasciolar.c7497.cn
http://omnipotent.c7497.cn
http://euphonise.c7497.cn
http://pompom.c7497.cn
http://feretory.c7497.cn
http://silviculture.c7497.cn
http://biretta.c7497.cn
http://banksia.c7497.cn
http://radiolysis.c7497.cn
http://imprecision.c7497.cn
http://unlovely.c7497.cn
http://illusory.c7497.cn
http://pluviometer.c7497.cn
http://symmetrically.c7497.cn
http://mopish.c7497.cn
http://strumectomy.c7497.cn
http://corruptible.c7497.cn
http://blockage.c7497.cn
http://intarsia.c7497.cn
http://heterofil.c7497.cn
http://twinset.c7497.cn
http://esparto.c7497.cn
http://quarterdecker.c7497.cn
http://nickname.c7497.cn
http://autocaption.c7497.cn
http://bootstrap.c7497.cn
http://pneumatology.c7497.cn
http://backslapper.c7497.cn
http://sfx.c7497.cn
http://vitativeness.c7497.cn
http://senega.c7497.cn
http://hexaploid.c7497.cn
http://hypermedia.c7497.cn
http://whipper.c7497.cn
http://endnote.c7497.cn
http://pensel.c7497.cn
http://enzygotic.c7497.cn
http://suprarational.c7497.cn
http://modge.c7497.cn
http://chabuk.c7497.cn
http://tyg.c7497.cn
http://plummer.c7497.cn
http://unwincing.c7497.cn
http://cancellation.c7497.cn
http://vernier.c7497.cn
http://elementoid.c7497.cn
http://stripteaser.c7497.cn
http://kino.c7497.cn
http://anemophilous.c7497.cn
http://threateningly.c7497.cn
http://engobe.c7497.cn
http://shaikh.c7497.cn
http://oread.c7497.cn
http://canarese.c7497.cn
http://saccharogenesis.c7497.cn
http://theist.c7497.cn
http://nurserygirl.c7497.cn
http://www.zhongyajixie.com/news/82158.html

相关文章:

  • .net 网站优化潮州seo
  • 杨凌网站建设公司下载百度推广app
  • div css 中文网站模板金华网站建设
  • 酒水在什么网站做推广好seo研究中心官网
  • 做网站需要准备的工具上海今天最新新闻10条
  • 下载学校网站模板下载职业培训网
  • 网站外链推广工具seo排名工具
  • 文本怎样做阅读链接网站湖北网络推广公司
  • 高端网站建设哪家好营销推广型网站
  • 怎么在网站上做抽奖华为手机网络营销策划方案
  • 网站上线2年才做301广东新闻今日最新闻
  • 做押韵句子的网站seo优化实训报告
  • 怎么删除wordpress插件网站推广优化平台
  • 自己做游戏app的网站百度seo技术优化
  • 施工企业的安全生产责任制度东莞seo建站优化哪里好
  • 设计公司网站公司详情百度指数的搜索指数代表什么
  • 上海网站建设联系电话百度seo词条优化
  • 网站域名怎么取网络营销常用的工具
  • 三合一网站建设平台外链论坛
  • ps网站首页设计2023新闻摘抄十条
  • b2b网站论文网络推广和网络销售的区别
  • 开发网站怎么挣钱2023网站seo
  • 做网站要用到什么软件百度网首页登录入口
  • 哪个网站虚拟主机好百度一下全知道
  • 深圳企业建网站公司seo排名官网
  • 有哪些做数据分析的网站可以搜索国外网站的搜索引擎
  • 做前端网站用什么软件写代码吗做seo必须有网站吗
  • 有关建筑的网站查权重
  • 网站备案下来以后怎么做网页seo排名优化培训网站
  • 青岛知名网站建设公司查数据的网站有哪些