(前文:WIN10专业版+VS2019+QT5.15.2:控件提升_wenluderen的专栏-CSDN博客)
环境:WIN10专业64版本+VS2019+QT5.12
第一步:打开VS2019 创建程序,名字是:Gsz_ZaiTiSheng
第二步:打开下图红色框内文件
打开文件:test_ide_vs_tisheng.ui ->拖一个 tree widget 控件到画布->右击弹出对话框->单击"提升为..."选项
第三步:添加类名称。
再次陈述一下,所谓提升,就是派生, 生个儿子,可以定向培养的儿子。
这里面需要填写类名字,需要注意大小写,通常行业规范,类的名字大写,所以啊
填写:MyTree
然后点击添加
然后点击提升。之后QT设计师里面的保存,再然后关闭QT设计师。
最后编译
第四步:打开ui_gsz_zaitisheng.h。
这个文件很难找,有的人会把这个文件换个位置。他原本在:
E:oneDriveText programmingQTDemo_VS_IDE_TiShengTest_IDE_VS_TiShengGsz_ZaiTiShengDebuguic
**
本着能不动,尽量不动的原则,我不去更改的他的位置
,下面看下这个文件。
发现他报错了, 这个太正常了, 因为在VS2019里面根本就没有MyTree这个类。
需要人工添加他, 其实这个是VS和QT之间没有交互好,正常来说应该在QT设计师里面提升完后
在VS2019里面就自动创建了 MyTree的头文件和源文件。 算了,还是手动添加吧,抱怨不解决问题。(网上很多教程,就是没有把如何添加头文件和源文件讲清楚)。
第五步:手动添加MyTree的头文件和源文件
A:
B:填写类名字:MyTree
C:修改头文件和源文件的名字为小写.
D:添加父类,也就是基类QTreeWidget
E:点击确定
F:在myTree.h 里面添加头文件
#pragma once #include//这就是添加的头文件 class MyTree : public QTreeWidget { };
G:此刻回过头类再看:ui_gsz_zaitisheng.h
里面就没有错误了,因为找到了头文件#include "mytree.h" 顺理成章
MyTree *treeWidget;里面的MyTree 也就有了定义
***************************************
第五步:至此呢, 控件的提升已经完成了, 下面就要基于这个提升的控件,干点事情
A :给MyTree 添加构造函数
#pragma once #include//这就是添加的头文件 class MyTree : public QTreeWidget { public: MyTree(QWidget* parent = 0); };
//该文件是:myTree.cpp
#include "myTree.h"
MyTree::MyTree(QWidget* parent)//构造函数
{
}
B,然后就是改写 MyTree的构造函数, 在里面添加一个弹出Message.
//该文件是:myTree.cpp #include "myTree.h" #includeMyTree::MyTree(QWidget* parent)//构造函数 { QMessageBox::warning(0, "test", "test"); }
C:编译运行一下
D:收摊
********************************************************
源代码如下:



