实践代码: git clone https://github.com/dilexliu/learn_qt5.git

Step1: Qt设计器绘制窗口

保存会得到一个文件: mainwindow.ui

另外还需要把mainwindow.ui 的代码保存出来,操作:在Qt设计器中的菜单栏【窗体】->【查看代码】,把其中的代码保存为 ui_mainwindow.h

Step2: 手动添加代码

mainwindow.h

#pragma once

#include "ui_mainwindow.h"

class CMainWindow : public QMainWindow, public Ui_MainWindow
{
Q_OBJECT
public:
CMainWindow(QWidget* = 0); };

mainwindow.cpp

#include <QtGui>
#include "mainwindow.h" CMainWindow::CMainWindow(QWidget* parent) : QMainWindow(parent)
{
this->setupUi(this); this->show();
}

main.cpp

#include <QtGui>
#include "mainwindow.h" CMainWindow::CMainWindow(QWidget* parent) : QMainWindow(parent)
{
this->setupUi(this);
}

CMakeLists.txt

cmake_minimum_required(VERSION 3.0)
project(MainWindow)
# Find the QtWidgets library
find_package(Qt5Widgets)
link_libraries(Qt5::Widgets) FILE(GLOB SC_FILES "*.cpp" "*.h") add_executable(${PROJECT_NAME} WIN32 ${SC_FILES})

Step3:CMake创建VS工程后编译

会出现一些错误:

>mainwindow.obj : error LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall CMainWindow::metaObject(void)const " (?metaObject@CMainWindow@@UBEPBUQMetaObject@@XZ)
>mainwindow.obj : error LNK2001: 无法解析的外部符号 "public: virtual void * __thiscall CMainWindow::qt_metacast(char const *)" (?qt_metacast@CMainWindow@@UAEPAXPBD@Z)
>mainwindow.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall CMainWindow::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@CMainWindow@@UAEHW4Call@QMetaObject@@HPAPAX@Z)
>E:\vc\qt\build\MainWindow\Debug\MainWindow.exe : fatal error LNK1120: 个无法解析的外部命令

Step4:解决问题  Qt下bin的moc生成moc_mainwindow.cpp

为了解决上面的错误,需要用到Qt\bin目录下的一个程序moc,通过它生成moc_mainwindow.cpp

如:

Step5:再编译

再通过cmake一下, 在VS加载工程配置后, 再编译, 就可以了

最新文章

  1. 基于jquery的-获取短信验证码-倒计时
  2. mysql_1
  3. 2010noip提高组解题报告
  4. linux下删除所有.svn目录
  5. meteor 实现 微信分享
  6. 本地工程提交github
  7. 【转】android 4.3 BLE onCharacteristicWrite没有回调
  8. shell 整理,更新,记录
  9. jQ层级选择器
  10. Myeclipse2014 已有项目更换JDK
  11. python 实现聊天室
  12. uvaLive7303 Aquarium (kruskal)
  13. 获取和设置用户id以及组id
  14. Linux的1000个命令
  15. Codeforces 219C Color Stripe(思维+字符串)
  16. [HDU5713]K个联通块
  17. BZOJ2724 [Violet]蒲公英 分块
  18. struts 跳转的四种常用类型
  19. C#基础系列 - 反射基础
  20. wamp安装后无法正常启动(80端口被占用)

热门文章

  1. Windows下配置Erlang环境
  2. C# 篇基础知识9——特性、程序集和反射
  3. vscode管理员身份运行
  4. Ansible自动化搭建及工具集和常见模块、命令详情(重点)
  5. C语言:输入一个数,输出比这个数小的所有素数,并求出个数。
  6. 「WC2013」糖果公园
  7. string和stringBuffer,stringBuilder的区别
  8. 洛谷P1086花生采摘(简单模拟)
  9. java 第三次课后作业
  10. iOS 增强程序健壮性 - - 使用 NullSafe 对 &lt;null&gt; 处理