原创
关注
1点赞·1106人阅读
VS2015+Qt5.9.4环境下
第一步、首先在Qt Creator创建一个新项目,选择“其它项目”,再选择Qt 4设计师自定义控件,再点击“choose”创建;
第二步,定义项目名称跟路径,这里我命名为"RoundButton",路径设置为默认;
点击下一步
再下一步
第三步、将控件的类重新命名,我这里命名为"RoundButton",这里的类名类似Qt控件名的“QPushButton” 、“QLabel”之类;
然后一直下一步,完成
完成自定义项目创建
其中roundbutton.h跟roundbutton.cpp就是我们要自定义的部分,在这里不喜欢一张白纸,啥都没有,roundbutton.h/cpp文件。
第四步、右击项目,点击“添加新文件”,选择"Qt",再选择“Qt 设计界面类”,选择“Choose”
选择“QWidget”作为基类界面
将类名命名为之前一样的名称“RoundButton”
点击“下一步”、“完成”会d出一个overwrite重写的提示,就是将原先的覆盖掉,选择“ok”是。
会d出个提示,选择“Yes to All”
自此又回到了我们熟悉的Ui设计师界面,我们可以在上面自由拖拽控件 ,也可以通过重绘函数paintEvent(QPaintEven *event)绘制我们所需的界面。
第五步、假设在这里你已经自定义好了你需要的控件,Release 项目,找到项目路径下的,roundbuttonplugin.dll跟roundbuttonplugin.lib文件
将他们拷贝到Qt设计师的目录中
第六步、进入VS Qt项目,打开Qt 设计师 - Qt Designear ,在自定义窗口部件可以看到我们自定义控件,我们就可以愉快的像耍QPushButton一样 *** 作RounButton控件,但是你在编译的时候会发现会有link链接之类的错误。
第七步、接下来就是要处理上面的编译链接错误,首先将自定义控件项目下的ui_roundbutton.h文件拷贝到VS Qt项目下GeneratedFiles文件中,对需要手动拷贝进去。
同时将自定义控件项目下的roundbutton.h跟roundbutton.cpp拷贝到VS Qt项目的同级目录下,并添加进入项目。
最后编译项目,可以顺利通过,至此Qt Creator 自定义控件加入到VS Qt项目完成
Qt5.7.1
CMake 3.10.2
opencv-3.3.0-vc14
右键“我的电脑”——属性——高级系统设置——环境变量,我的路径是C:\Qt\Qt5.7.1\Tools\mingw530_32\bin,如图所示
打开CMake,设置源码的路径和输出路径,然后点击Configure,选择如所示
Next,配置c和c++,我的路径如下
点击Finish,等待加载完毕,暴很多红项
在Search框内搜索WITH_QT和WITH_OPENGL,都打上勾,再点击Configure
此时还有这几项是红的,点击ADD Entry,添加“QT_MAKE_EXECUTABLE”,并选择qmake的路径如图所示
在Search搜索CMAKE_BUILD_TYPE,修改value成 Release 或RelWithDebInfo
再次点击Configure,然后点击Generate
打开cmd命令提示符,进入输出文件夹并编译
这里的8根据自己电脑配置而定,8核cpu 我这里填8
如果编译过程中出现类似这样的错误:
解决办法:在CMake搜索ENABLE_PRECOMPILED_HEADERS,把这个项的打勾去掉,然后点Configure,Generate,再执行编译:ming32-make -j 8
如果遇到类似这样的错误
解决办法:根据提示的路径去opencv源码文件找cap_dshow.cpp文件,我的在D:\tmp\opencv\sources\modules\videoio\src文件夹里,用记事本打开cap_dshow.cpp,搜索
然后在上面添加
再次执行编译:ming32-make -j 8
方法同上,把D:\tmp\opencv-build\install\x86\mingw\bin添加到path里
打开Qt,新建一个项目,Qt Widgets Application
调试
如果出现错误:
解决办法:点击左侧的项目,填好构建目录,如图所示:
修改.pro文件,添加
这里需要注意一下330,有些版本是320
修改完后,点击构建 ,执行qmake
修改mainwindow.cpp
效果:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)