网站关键字标签,iis 无法访问此网站,营销型网站设计流程,网站制作培训班视频连接
https://www.bilibili.com/video/BV1XY41127t3/?vd_source8be9e83424c2ed2c9b2a3ed1d01385e9
Qt项目视图便捷类
Qt项目视图提供了一些便捷类#xff0c;包括QListWidget, QTableWidget#xff0c; QTreeWidget等。我们分别介绍这几个便捷类。 我们先创建一个Qt …视频连接
https://www.bilibili.com/video/BV1XY41127t3/?vd_source8be9e83424c2ed2c9b2a3ed1d01385e9
Qt项目视图便捷类
Qt项目视图提供了一些便捷类包括QListWidget, QTableWidget QTreeWidget等。我们分别介绍这几个便捷类。 我们先创建一个Qt Application应用然后在mainwindow的构造函数中创建一个listwidget auto listWidget new QListWidget(this);QListWidgetItem * listWidgetItem new QListWidgetItem;listWidgetItem-setText(listItem);QPixmap pixmap(50,50);pixmap.fill(Qt::blue);listWidgetItem-setIcon(pixmap);listWidgetItem-setToolTip(this is list item);listWidget-insertItem(1,listWidgetItem);QListWidgetItem * listWidgetItem2 new QListWidgetItem;listWidgetItem2-setText(listItem2);QPixmap pixmap2(50,50);pixmap2.fill(Qt::green);listWidgetItem2-setIcon(pixmap2);listWidgetItem2-setToolTip(this is list item2);listWidget-insertItem(2,listWidgetItem2);listWidget-sortItems(Qt::DescendingOrder);listWidget-show();this-setCentralWidget(listWidget);运行效果如下
接下来我们在mainwindow.h里添加QTableWidget和QTreeWidget成员变量 QTreeWidget * _treeWidget;QTableWidget * _tableWidget;然后继续在mainwindow的构造函数中创建TableWidget和TreeWidget。 _treeWidget new QTreeWidget();//treewidget 要设置列数_treeWidget-setColumnCount(2);QStringList headers;headers name year;_treeWidget-setHeaderLabels(headers);//添加项目//父节点是_treeWidgetQTreeWidgetItem * grade1 new QTreeWidgetItem(_treeWidget);grade1-setText(0,Grade1);//父节点是grade1QTreeWidgetItem * student new QTreeWidgetItem(grade1);student-setText(0,Tom);student-setText(1,1996);//父节点是grade1, 在student之后QTreeWidgetItem * student2 new QTreeWidgetItem(grade1, student);student2-setText(0,Zack);student2-setText(1,1988);//父节点是_treeWidget, 在grade1之后QTreeWidgetItem * grade2 new QTreeWidgetItem(_treeWidget,grade1);grade2-setText(0,Grade2);QTreeWidgetItem * student3 new QTreeWidgetItem(grade1, student2);student3-setText(0,Will);student3-setText(1,1989);_treeWidget-show();我们创建了一个TreeWidget创建TreeWidget要指明列数量然后创建了头信息接下来利用QTreeWidgetItem的构造函数创建了一些item两个参数的构造函数第一个参数是item的父节点第二个参数是其兄弟节点。运行之后效果如下 我们可以根据item的父节点是否为空判断其是否为顶层节点然后执行删除节点操作 //删除student3,先获取其父节点auto *parent_student3 student3-parent();//获取student3在其父节点下的indexauto index_student3 parent_student3-indexOfChild(student3);//根据index删除student3delete parent_student3-takeChild(index_student3);//删除grade2auto * parent_grade2 grade2-parent();//grade2为顶层节点所以其父节点必为nullassert(parent_grade2 nullptr);//通过treewidget获取grade2的indexauto index_grade2 _treeWidget-indexOfTopLevelItem(grade2);delete _treeWidget-takeTopLevelItem(index_grade2);创建QTableWidget //创建表格指定行号和列号_tableWidget new QTableWidget(3,2);//创建表格项目将其插入到表格中QTableWidgetItem * tableWidgetItem new QTableWidgetItem(qt);_tableWidget-setItem(1,1,tableWidgetItem);//创建表头QTableWidgetItem * headerV new QTableWidgetItem(first);_tableWidget-setVerticalHeaderItem(0, headerV);QTableWidgetItem * headerH new QTableWidgetItem(ID);_tableWidget-setHorizontalHeaderItem(0, headerH);_tableWidget-show();运行效果
实现拖拽
有时我们需要实现拖拽操作, 我们可以在之前实现的listWidget设置一些拖拽属性。 //设置list为单选模式listWidget-setSelectionMode(QAbstractItemView::SingleSelection);//启用拖动listWidget-setDragEnabled(true);//设置接受拖放listWidget-viewport()-setAcceptDrops(true);//设置显示将要放置的位置listWidget-setDropIndicatorShown(true);//设置拖放模式为移动项目如果不设置则为复制项目listWidget-setDragDropMode(QAbstractItemView::InternalMove);源码链接
源码链接 https://gitee.com/secondtonone1/qt-learning-notes