[Qt5] 使用Qt设计器绘制主窗口
2024-08-23 21:57:27
实践代码: 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加载工程配置后, 再编译, 就可以了
最新文章
- 基于jquery的-获取短信验证码-倒计时
- mysql_1
- 2010noip提高组解题报告
- linux下删除所有.svn目录
- meteor 实现 微信分享
- 本地工程提交github
- 【转】android 4.3 BLE onCharacteristicWrite没有回调
- shell 整理,更新,记录
- jQ层级选择器
- Myeclipse2014 已有项目更换JDK
- python 实现聊天室
- uvaLive7303 Aquarium (kruskal)
- 获取和设置用户id以及组id
- Linux的1000个命令
- Codeforces 219C Color Stripe(思维+字符串)
- [HDU5713]K个联通块
- BZOJ2724 [Violet]蒲公英 分块
- struts 跳转的四种常用类型
- C#基础系列 - 反射基础
- wamp安装后无法正常启动(80端口被占用)