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

qt-C++笔记之treeWidget初次使用

qt-C++笔记之treeWidget初次使用

code review!

文章目录

  • qt-C++笔记之treeWidget初次使用
    • 1.运行
    • 2.文件结构
    • 3.main.cpp
    • 4.widget.h
    • 5.widget.cpp
    • 6.widget.ui
    • 7.main.qrc
    • 8.qt_widget_test.pro
    • 9.options.png

1.运行

https://note.youdao.com/s/RWcKoOO1

2.文件结构

在这里插入图片描述

3.main.cpp

在这里插入图片描述

代码

#include "widget.h"#include <QApplication>int main(int argc, char *argv[])
{QApplication a(argc, argv);Widget w;w.show();return a.exec();
}

4.widget.h

在这里插入图片描述

代码

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QComboBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();private:Ui::Widget *ui;
};
#endif // WIDGET_H

5.widget.cpp

在这里插入图片描述

代码

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);ui->treeWidget->setHeaderLabels(QStringList()<<"key"<<"value");QTreeWidgetItem* item1=new QTreeWidgetItem(QStringList()<<"Global Options");ui->treeWidget->addTopLevelItem(item1);item1->setIcon(0,QIcon(":/image/options.png"));ui->treeWidget->setColumnWidth(0, 300);ui->treeWidget->setColumnWidth(1, 300);QTreeWidgetItem* item1_child1=new QTreeWidgetItem(QStringList()<<"Fixed Frame1");item1->addChild(item1_child1);QComboBox* box1_1=new QComboBox;box1_1->setMaximumWidth(200);box1_1->addItem("base_link");box1_1->addItem("odom");box1_1->addItem("map");box1_1->setEditable(true);ui->treeWidget->setItemWidget(item1_child1,1,box1_1);QTreeWidgetItem* item1_child2=new QTreeWidgetItem(QStringList()<<"Fixed Frame2");item1->addChild(item1_child2);QComboBox* box2_1=new QComboBox;box2_1->setMaximumWidth(200);box2_1->addItem("map");box2_1->addItem("odom");box2_1->addItem("base_link");box2_1->setEditable(true);ui->treeWidget->setItemWidget(item1_child2,1,box2_1);
}Widget::~Widget()
{delete ui;
}

6.widget.ui

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0"><class>Widget</class><widget class="QWidget" name="Widget"><property name="geometry"><rect><x>0</x><y>0</y><width>672</width><height>541</height></rect></property><property name="windowTitle"><string>Widget</string></property><widget class="QTreeWidget" name="treeWidget"><property name="geometry"><rect><x>40</x><y>30</y><width>601</width><height>481</height></rect></property><column><property name="text"><string notr="true">1</string></property></column></widget></widget><resources/><connections/>
</ui>

7.main.qrc

<RCC><qresource prefix="/"><file>image/options.png</file></qresource>
</RCC>

8.qt_widget_test.pro

QT       += core guigreaterThan(QT_MAJOR_VERSION, 4): QT += widgetsCONFIG += c++11# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0SOURCES += \main.cpp \widget.cppHEADERS += \widget.hFORMS += \widget.ui# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += targetRESOURCES += \main.qrc

9.options.png

在这里插入图片描述

相关文章:

  • Sql Server 2017主从配置之:事务日志传送
  • P3879 [TJOI2010] 阅读理解- 字典树
  • Java方法中不使用的对象应该手动赋值为NULL吗?
  • JS 新操作符 —— “?.”、“??”、“??=”
  • Excel 文件比较工具 xlCompare 11.01 Crack
  • Python编程陷阱(五)
  • 【Java并发编程二】线程的基本知识
  • YOLOv7独家原创改进:最新原创WIoU_NMS改进点,改进有效可以直接当做自己的原创改进点来写,提升网络模型性能精度
  • MSYS2介绍及工具安装
  • SELinux零知识学习十七、SELinux策略语言之类型强制(2)
  • excel用RAND函数、或者RAND.NV函数生成随机数、这两个函数的区别
  • NFTScan 正式上线 Viction NFTScan 浏览器和 NFT API 数据服务
  • OpenCV+特征检测
  • FDM(傅里叶分解)
  • 基于springboot实现私人健身与教练预约管理系统项目【项目源码+论文说明】
  • 《剑指offer》分解让复杂问题更简单
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • ES6语法详解(一)
  • JavaScript设计模式之工厂模式
  • rabbitmq延迟消息示例
  • Web设计流程优化:网页效果图设计新思路
  • 聊聊sentinel的DegradeSlot
  • 前言-如何学习区块链
  • 通过几道题目学习二叉搜索树
  • 微信小程序:实现悬浮返回和分享按钮
  • 微信小程序填坑清单
  • 用 Swift 编写面向协议的视图
  • 06-01 点餐小程序前台界面搭建
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • (C)一些题4
  • (day6) 319. 灯泡开关
  • (备忘)Java Map 遍历
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (十二)springboot实战——SSE服务推送事件案例实现
  • .gitattributes 文件
  • .Net 6.0 处理跨域的方式
  • .net 怎么循环得到数组里的值_关于js数组
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET业务框架的构建
  • .Net中ListT 泛型转成DataTable、DataSet
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @Bean注解详解
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • [ vulhub漏洞复现篇 ] AppWeb认证绕过漏洞(CVE-2018-8715)
  • [ vulhub漏洞复现篇 ] Hadoop-yarn-RPC 未授权访问漏洞复现
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [1159]adb判断手机屏幕状态并点亮屏幕
  • [2017][note]基于空间交叉相位调制的两个连续波在few layer铋Bi中的全光switch——
  • [AAuto]给百宝箱增加娱乐功能
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [emacs] CUA的矩形块操作很给力啊