查看“WxWidgets”的源代码
←
WxWidgets
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
== 说明 == 本人使用此Gui库制作一些小工具,列表如下: * [[WMToolHelper]] * [[WinBleTool]] * [[SimpleBLETool]] 此GUI库的特点如下: * 免费开源。 * 静态编译很方便。 == 常用辅助工具 == 虽然wxWidgets支持直接使用代码写UI(充分利用各种layout),本人还是习惯使用各种辅助工具设计UI。 === wxSmith === wxSmith作为codeblocks的一部分(插件),必须使用codeblocks一步一步建立工程。 === wxFormBuilder === wxFromBuilder直接生成窗口程序的头文件及C++源代码,只需要实现对应的虚函数即可。 源代码:https://github.com/wxFormBuilder/wxFormBuilder.git == 编程注意事项 == === 多线程 === 不能使用主线程与定时器以外的线程操作界面,否则在某些情况下会出错。如在Linux下会提示需要启用X的多线程支持,否则直接退出。 本人的解决方法如下: * 通过C++的Lambda表达式将所有的UI操作传递到定时器操作,定时刷新UI。 === 退出时内存泄漏 === 在主窗口退出时,最好在其析构函数关闭创建的窗口及其他资源。内存泄漏通常不会引起程序逻辑问题(操作系统会清理内存),但在某些时候可能会引起操作系统的某些操作。例如:Linux会在终端上显示较多错误信息。 === 指针使用 === wxWidgets有时会自动delete某些指针(具体见Api的说明,通常会指明某些参数无需手工delete),但当变量是栈上的变量时,在某些情况下会出现错误(比如free一个不在堆上的指针)。 因此,当使用栈上的变量作为参数时,若Api调用的重载中包含使用引用的调用,优先使用引用而不是指针。 == 编译环境搭建== 本人主要使用Windows与Linux(Ubuntu)。 ===Linux=== 对于Linux,本人主要使用Ubuntu 20.04及更新版本,使用以下指令即可安装好编译环境:<syntaxhighlight lang="bash" line="1"> #安装相应工具及库 sudo apt-get install build-essential make cmake pkg-config libwxgtk3.0-gtk3-dev libwxgtk-media3.0-gtk3-dev libwxgtk-webview3.0-gtk3-dev ninja-build </syntaxhighlight>其他Linux发行版可参考ubuntu安装该发行版支持的对应软件包,主要需要的软件如下: *gcc: 编译器(注意:需要将g++也安装上)。 *cmake: 跨平台的编译工具。 *make: 编译基于Makefile的文件。 *ninja: 构建系统,可充分利用cpu资源。 *pkg-config : 用于管理库文件。 ===Windows=== 对于Windows,本人主要使用Windows 10+且使用MSVC及Mingw作为开发环境,且一般采用静态链接。 ====MSVC==== 在Visual Studio Installer中勾选上C++开发,并且安装好Windows SDK与CMake即可。 wxWidgets可使用CMake从源代码编译安装。由于一般编译器版本及编译设置(调试与否及多线程设置等)不同的库不可通用,故最好每次都从源码编译且使用同一个VS工具命令提示符。 ==== Mingw ==== 本人使用Mingw,通常使用[https://www.msys2.org/ MSYS2] 。下列是mingw32环境的安装:<syntaxhighlight lang="bash" line="1"> pacman -S ${MINGW_PACKAGE_PREFIX}-cmake ${MINGW_PACKAGE_PREFIX}-ninja ${MINGW_PACKAGE_PREFIX}-make ${MINGW_PACKAGE_PREFIX}-pkgconf ${MINGW_PACKAGE_PREFIX}-toolchain ${MINGW_PACKAGE_PREFIX}-wxWidgets </syntaxhighlight>通常采用mingw32编译即可,通常情况下32位与64位通用。如需使用其它环境(不包括msys,可使用如mingw64,ucrt,clang32,clang64环境),请在其它环境执行环境安装命令。 ==官网== https://www.wxwidgets.org/
返回
WxWidgets
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息