初学C++,想要从头搭建用户界面,之前接触过QT开发,但是QT开发环境安装后占用空间比较大,而且新版QT已经是在线下载了,感觉没以前离线下载整个安装包方便。而且封装太多也不利于更深入学习C++。因此入手学习wxWidgets,因为又不想使用VISUAL STUDIO来开发(太过于笨重,也是本人过于挑剔),因此选择VSCODE安装C++环境来开发wxWidgets。花了几天时间来编译wxWidgets,总算把wxWidgets3.2.1编译出来,做出了第一个界面窗口。为了后续不至于忘记,同时给后来人一个参考,特记录关键过程如下:
环境版本:VSCODE1.70.1、MINGW64-8.1、wxWidgets3.2.1、CMake3.23.0
VSCODE上使用CMAK比较方便,安装插件也特别简单。网上教程比较多,这里就不介绍了。
1.编译wxWidgets3.2.1(此处命令借荐网文:https://blog.csdn.net/net990/article/details/123771290,在此感谢)
CMD进入D:\code\cproject\wxWidgets-3.2.1\build\msw 目录下,执行如下命令:
mingw32-make -j4 -f makefile.gcc CPPFLAGS=-std=c++11 SHARED=1 BUILD=debug UNICODE=1
mingw32-make -j4 -f makefile.gcc CPPFLAGS=-std=c++11 SHARED=1 BUILD=release UNICODE=1
mingw32-make -j4 -f makefile.gcc CPPFLAGS=-std=c++11 SHARED=0 BUILD=release UNICODE=1
本人执行的第二条命令,执行该步后,大约30分钟编译完成。
2.编译完成后,搭建VSCODE项目(此处略过,网上教程比较多)。这里主要把CMakeList.txt内容列出。
cmake_minimum_required(VERSION 3.0.0)
project(wxdemo VERSION 0.1.0)
include_directories(
"D:\\code\\cproject\\wxWidgets-3.2.1\\include",
"D:\\code\\cproject\\wxWidgets-3.2.1\\lib\\gcc_dll"
)
include_directories( "D:\\code\\cproject\\wxWidgets-3.2.1\\include")
include_directories( "D:\\code\\cproject\\wxWidgets-3.2.1\\lib\\gcc_dll\\mswu")
link_directories("D:\\code\\cproject\\wxWidgets-3.2.1\\lib\\gcc_dll")
include(CTest)
enable_testing()
add_executable(wxdemo wxdemo.cpp)
target_link_libraries(wxdemo wxbase32u)
target_link_libraries(wxdemo wxmsw32u_core)
set(CPACK_PROJECT_NAME ${PROJECT_NAME})
set(CPACK_PROJECT_VERSION ${PROJECT_VERSION})
include(CPack)
3.编译完成后,生成wxdemo可执行文件。
主文件(wxdemo.cpp)内容如下:
#include <wx/wx.h>
//框架类wxFrame
class MyFrame : public wxFrame
{
public:
MyFrame(const wxString& title): wxFrame(NULL, wxID_ANY, title)
{
//添加状态栏
CreateStatusBar();
SetStatusText(wxT("Welcome to wxWidgets!"));
}
};
//应用程序类APP
class MyApp : public wxApp
{
public:
//Frame的实例化
virtual bool OnInit()
{
MyFrame * pframe = new MyFrame(wxT("Hello World"));
pframe->Show(true);
return true;
}
};
//声明应用程序
IMPLEMENT_APP(MyApp)
执行结果: