不建议用wxWidgets, 搞了wxWidgets 3年,不是所说的那么容易跨平台,很多bug,不稳定, 莫名其妙的崩溃找源代码修改编译真是费时费力. 开发速度真没有使用本地sdk开发高, 很难定制复杂的控件和界面. 定制了复杂的控件后崩溃发现它的基础的类库有bug, 后悔浪费那3年时间.

http://bbs.csdn.net/topics/391817496?page=6

想问一下你当时用的wxWidgets是什么版本。
我现在用的是 wxWidgets 3.0.2,开发工具用的是 Visual Studio 2015。
没感觉到什么明显的 Bug,挺稳定的。可能是我用的还没有像您那样深入?难道等我用得比较深入了也会遇到您所说的那些坑?这也是说不准的事呢。
不过目前来说,wxWidgets 是我最好的选择,我是指兼顾开发效率与团队作战的情况下。
直接用本地SDK开发的话。。。如果是我一个人的项目我肯定这么干,但团队作战我目前还是觉得用 wxWidgets 比用Windows SDK 要好。
跨平台的事,我目前可以不做跨平台,但长远的打算是要的。用 wxWidgets 本身就是为了使将来跨平台成为可能。没指望到时候一点也不折腾,只要技术上可行就好。
我们公司做界面,通常是用的 OpenGL 方案,有一个我们自己内部的类库,底层是 OpenGL,靠OpenGL来画出各种各样的控件,包括做出各种事件响应什么的。他们这么做是有一定道理的,因为要跨平台,跨的不是Windows和Linux这样的平台,而是跨PC与嵌入式(比如VxWorks)这样的平台。
因为公司那个OpenGL类库比较难用,所以我自己的实验性项目选择了 wxWidgets。

http://bbs.csdn.net/topics/391817496?page=8

1. 用了3.0.2,它实现了自己的一套消息机制,这种消息机制不稳定(也是类似封装消息转发自定义消息那种),嵌套的层次太多,很多系统消息都获取不到. 比如设备插入拔出(可能我不会?),不容易扩展消息.
2. 有时候崩溃点在它的消息处理部分,根本没办法改.
3. 每次升级费老大功夫,编译wx也很费时间.
4. 曾经wxString内部崩溃,这可麻烦大了.
5. 里面也是到处充满宏,没比MFC好多少,比较好的是可以动态绑定处理函数.只要控制了WTL的PreTranslateMessage一样可以自由改.wx可没有类似WTL的那种PreTranslateMessage自定义消息转发!
6. 编译wx也经常编译不过,还限制了编译器的版本.
7. wx里面的代码其实并不好.
真的,我奉劝你不要用wx了,如果想用跨平台就用qt, 它比wx稳定,不过也遇到QString曾经崩溃过.之后再也不想用第3方的ui实现了. 稳定的还是官方自己的std::string或NSString.
qt的坏处就是限制在这个平台上, 不能随意使用系统特性,比如Mac下的原生ui和qt不一样, 也就是qt不能实现某种效果, 这种第3方的永远都落后于平台自己的.

我从2.8.0-2.9.2 开始用到3.0.2 ,之后换WTL和Cocoa. 它的标准控件看样子很强大, 但是不稳定和性能很低, MFC或WTL的OWNERDRAW一样可以很容易实现,而且很多例子学习不是问题.相比之下wx用的人太少,基本都是只能自己去研究,没的参考还浪费很多时间,悲剧的是它还是一个第3方库, win32编程完全用不到它. 它实现的那些文件,流,Socket,wxURL功能很弱,还不如直接用win32 api或者用boost,zlib等独立第3方库.
好的也就只有wxImage和它的控件了.

不建议用wxWidgets,底层有过多的bug的更多相关文章

  1. 为什么不建议在 HBase 中使用过多的列族

    我们知道,一张 HBase 表包含一个或多个列族.HBase 的官方文档中关于 HBase 表的列族的个数有两处描述: A typical schema has between 1 and 3 col ...

  2. 为什么不建议在hbase中使用过多的列簇

    我们知道,hbase表可以设置一个至多个列簇(column families),但是为什么说越少的列簇越好呢? 官网原文: HBase currently does not do well with ...

  3. 改善python程序的建议[转]

    <编写高质量代码 改善Python程序的91个建议> <编写高质量代码 改善Python程序的91个建议>读后程序学习小结 - BigDeng_2014的专栏 - CSDN博客 ...

  4. android:布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!

    1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...

  5. Android为TV端助力 布局、绘制、内存泄露、响应速度、listview和bitmap、线程优化以及一些优化的建议!

    1.布局优化 首先删除布局中无用的控件和层级,其次有选择地使用性能较低的viewgroup,比如布局中既可以使用RelativeLayout和LinearLayout,那我们就采用LinearLayo ...

  6. 精讲RestTemplate第2篇-多种底层HTTP客户端类库的切换

    本文是精讲RestTemplate第2篇,前篇的blog访问地址如下: 精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用 RestTemplate只是对其他的HTTP客 ...

  7. wxWidgets源码分析(9) - wxString

    目录 wxString wxString的中文字符支持 Windows Linux Unicode Linux UTF-8 总结 wxString与通用字符串的转换 wxString对象的创建 将wx ...

  8. wxWidgets源码分析(4) - 消息处理过程

    目录 消息处理过程 消息如何到达wxWidgets Win32消息与wxWidgets消息的转换 菜单消息处理 消息处理链(基于wxEvtHandler) 消息处理链(基于wxWindow) 总结 消 ...

  9. 电容式触摸控制器PCB布局

    在目前市场上可提供的PCB(印刷电路板)基材中,FR4是最常用的一种.FR4是一种玻璃纤维增强型环氧树脂层压板,PCB可以是单层或多层. 在触摸模块的尺寸受限的情况下,使用单层PCB不是总能行得通的, ...

随机推荐

  1. [置顶] vb报表的设计

    敲机房收费系统,最难的部分应该就是关于报表的部分了.相对于学生信息管理系统,报表是新内容,在vb中添加报表需要添加第三方控件,首先我们要下载水晶报表,下面就向大家展示一下我设计报表的步骤(我用的新版本 ...

  2. 基于Android Volley的网络请求工具

    基于Android Volley的网络请求工具. 一.说明 AndroidVolley,Android Volley核心库及扩展工程.AndroidVolleySample,网络请求工具示例工程.Re ...

  3. automatically select architectures

    各位在用XCode 5.x 打开用XCode 4.x 创建的项目时候.会遇到编译器警告automatically select architectures. 1. This is because th ...

  4. javascript获取CSS3浏览器前缀

    var prefix = (function () { var styles = window.getComputedStyle(document.documentElement, ''), pre ...

  5. (转)linux下导入、导出mysql数据库命令

    原文链接:http://www.xiaohuai.com/2902 一.导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):1.导出数据和表结构:mysqldump -u用 ...

  6. 关于——NSThread

    创建.启动线程 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(run) object:nil] ...

  7. OC之字符串 NSString与NSMutableString

    一.NSString 不可变字符串的操作1)将字符串常量对象直接赋值给字符串引用 NSString *str1=@"hello"; 字符串对象的输出格式:NSLog(@" ...

  8. 微信js-sdk,选择图片,上传,下载到本地,php服务端

    //前端js代码<script> //客户端6.0.2 wx.config({ //debug:true, appId: "{pigcms:$signPackage.appId} ...

  9. Dapper事务操作

    1.报错信息: 如果分配给命令的连接位于本地挂起事务中,ExecuteNonQuery 要求命令拥有事务.命令的 Transaction 属性尚未初始化. 出现这种原因是在执行Execute语句时,没 ...

  10. 武汉科技大学ACM:1007: 陶陶摘苹果

    Problem Description 厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试. 个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够摘到的苹 ...