现在用C++写界面用什么好

明月书君 2013-01-22 08:38:45
如题
现在用C++写界面用什么好
...全文
25560 1 收藏 108
写回复
108 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengye_826 2014-01-19
引用 15 楼 blackshelf 的回复:
[quote=引用 14 楼 ppsharp 的回复:] 引用 13 楼 blackshelf 的回复:引用 10 楼 ppsharp 的回复:引用 2 楼 blackshelf 的回复:QT啊,非常简单易用、强大!一周能入门,一个月就能做出非常酷的界面,QT Style Sheet太好用了。可以先看看这本书:<<C++ GUI QT4 编程>> 为什么这本书C++ PRIMER 5TH EDITTION在你网上下载不了呢……
不用客气,只是做一个程序员的博客网站,分享一下硬盘里的资料。:)[/quote]我是刚开始接触编写界面的,可不可以发一个例子学习一下??
回复
感觉你们都好厉害。大二学生,只学了MFC,还觉得MFC很厉害,我真是孤陋寡闻
回复
nowayw 2013-06-08
qt 写出的程序能被反编译吗 ,一般C# 的程序都能被反编译 ,大家考虑这个问题吗,还有听说delphi 写界面也不错,不知道大家对delphi 有什么评价
回复
a812872970 2013-04-09
学习了,热心人挺多
回复
gbb21 2013-02-01
引用 76 楼 a63140180 的回复:
引用 72 楼 gbb21 的回复:Qt 这种需要二次编译的东西居然还有人说其优雅? QT不是二次编译的好不,只是有部分c++代码是程序自动生成的,最终编译还是c++的编译器gcc或者cl来编译的。
你说的程序根据自动生成代码不正是二次编译么? 我不是说二次编译不好,只是要看二次编译用在什么地方。 比如用二次编译来生成逻辑无关的资源(例如UI的布局,排版),则是一种非常优雅的方案; 如果用二次编译来生成程序逻辑,那么就不利于程序的简洁性和维护性了。
回复
zsyddl2 2013-02-01
其他的就不说了, 有 好东西自然后人用了。另外 qt vs插件 你是真不了解。诺基亚 在08年才收购 qt, 早在 2005年以前 qt vs 插件就有了,只是你并不知道罢了。 那时候还是全部嵌入 vs里面 内嵌编辑。 qt 做 嵌入式 也是 很成熟的。 国内 有不少厂商尝试 gtk做嵌入式,都艰难告终。 在 pc端,qt性能和gtk 的相应速度并不明显。 整体来说, 方便性 稳定性 易用性 等方面 对 c++做原生应用开发来说,是非常不错的选择。
回复
Modeus 2013-02-01
QT的VS插件也是Nokia收购之后的事情啦。撇开VS插件和qt creater,QT与GTK的开发环境就差不多了,一个是designer,一个是glade。 GTK用C来写确实比较繁琐,没有QT的C++那么“高层次”,但反过来说用C的话对系统资源要求不多,代码运行空间没C++那么多,也许比较适合嵌入式——可惜GTK的大牛们不大力发展嵌入式。 为了解决C的开发效率低,大牛们发明了Vala语言,类似C#和Java,比C++更方便。
回复
zsyddl2 2013-01-31
qt 同样有 插件 功能。想用xml 解析 库多的是,和qt gtk没关系。另外要单纯使用xml qt 也同样可以,谁会强迫你还带上界面库?。 诺基亚收购 qt之后 只是让 更多的人了解 认识qt,而 其 qtcreator 没见的 多好用。windows 用 vs插件就可以了。 未收购之前 多少年就可以 和vs开发 c#一样 方便的使用。 所以此处 几个 说法也太牵强了。另外没见得 qt 就那么紧。 项目中使用没有什么与外界有 不好交互的,都是 c 或者c++代码,哪里来不好交互,不好衔接?这个 又是为了而来呢? “天降神功吧”。 另外主要的就是 gtk c封装的模仿对象 使用的那么难受。多少的 宏代码模板!。
回复
Modeus 2013-01-31
再补充一下,由于GTK是“松散”的,所以可以按需要只用部分功能,比如我只需要写一个xml文件处理模块,就只调用libxml就行了,不必连带界面库。而用GModule,可以轻松实现插件动态加载功能。
回复
Modeus 2013-01-31
引用 98 楼 zsyddl2 的回复:
qt 是一体化方案,但是并没有拒绝 用户使用 任何其他的功能库。而是用更加方便的集成好更多功能,同时用户可以想怎么大杂烩 用户随意继续 烩。什么后者开放灵活的 特点 并不是什么特有的优点,前者同样有。前者有的后者并不一定有。而其紧紧便捷方面是后者 不能比的。 gtk在稳定性上,windows不敢恭维。 而很多windows商业软件 也用qt做为界面支持,而没有gtk。可见一斑。 另外gtk为c 接口,需要使用 glib 的支撑, 该库的使用也是 为了模仿面相对象的一种 模拟实现,使用习惯上非常别扭。包括gstreamer 也是基于glib的,使用也是同样。另外如果需要使用 多音频视频编解码 直接上 ffmpeg 就ok了,再说 gstream还使用 ffmpeg做一个支撑呢。
GTK在Windows上用得少,恐怕主要原因是界面丑不好见人吧?GTK+ 2.x的时候,如果没配置好theme,就会很难看。 我没说QT不能与其它开源项目搭配,只是可能不太自然——各种数据类型怎么衔接?相对来说GTK本身就是“松散”的,数据类型也比较“原始”,容易与外界交互。 QT近年大热,只不过是出了个qt creater,写代码、编译、调试一条龙。在Nokia收购它之前,用它还不是像用GTK那样。
回复
zero_create 2013-01-30
回复
zsyddl2 2013-01-30
qt 还是 c++ 界面的 最佳选择。开发速度快捷方面不亚于 C# 。 开源并可以商用。 我们公司的客户端就用它。不会存在 c# 等其他语言与 c++功能模块调试的交叉问题。 qt5 之后 signal slot 已经使用 模板实现, 不再是以前的 字符串的方式了,这个方面的效率应该大大提高。 qt资料很多很多。想实现的功能 基本可以在 demo里面找到。 另外 什么时候 qt 能 去掉元模型 直接 c++编译 就更爽了。 库的大小 那一点,就不在选择界面开发库的考虑范围了,要考虑库大小,那就直接api。 这里只是推荐一下qt做界面,避免为了做界面浪费多少宝贵时间。再也不用 去 mfc 什么的各种折腾了。回头想当年用mfc为了弄个界面各种折腾啊,BCG bar,x 库,and 很多很多。 qt多语言,界面风格等轻松搞定。不仅仅是界面那么简单,qt包含各种日常软件开发需要的模块,字符串解析,字符编码处理,正则表达式,xml解析,配置文件操作,网络通信,与dirextx opengl无障碍配合,等各种方便 ,可以用更多的时间去做业务逻辑。稳定性非常好,毕竟是十多年的产品了。是开源(免费)的开发库里面和商业版本一样的性能的库,开源产品里面可找不出多少达到这个级别的。 有这么方便、快捷、稳定的c++库,也是 c++开发 还用去 c#,directui 什么的舍近求远呢?
回复
zsyddl2 2013-01-30
引用 97 楼 Yannis 的回复:
引用 95 楼 zsyddl2 的回复:qt 还是 c++ 界面的 最佳选择。开发速度快捷方面不亚于 C# 。 开源并可以商用。 我们公司的客户端就用它。不会存在 c# 等其他语言与 c++功能模块调试的交叉问题。 qt5 之后 signal slot 已经使用 模板实现, 不再是以前的 字符串的方式了,这个方面的效率应该大大提高。 qt资料很多很多。想实现的功能 ……
qt 是一体化方案,但是并没有拒绝 用户使用 任何其他的功能库。而是用更加方便的集成好更多功能,同时用户可以想怎么大杂烩 用户随意继续 烩。什么后者开放灵活的 特点 并不是什么特有的优点,前者同样有。前者有的后者并不一定有。而其紧紧便捷方面是后者 不能比的。 gtk在稳定性上,windows不敢恭维。 而很多windows商业软件 也用qt做为界面支持,而没有gtk。可见一斑。 另外gtk为c 接口,需要使用 glib 的支撑, 该库的使用也是 为了模仿面相对象的一种 模拟实现,使用习惯上非常别扭。包括gstreamer 也是基于glib的,使用也是同样。另外如果需要使用 多音频视频编解码 直接上 ffmpeg 就ok了,再说 gstream还使用 ffmpeg做一个支撑呢。
回复
xiaodong60606 2013-01-30
引用 56 楼 wdgcn 的回复:
我用过好多年MFC,但开始用QT后,就再也不想用MFC了
不是吧?我学MFC呢。
回复
Modeus 2013-01-30
引用 95 楼 zsyddl2 的回复:
qt 还是 c++ 界面的 最佳选择。开发速度快捷方面不亚于 C# 。 开源并可以商用。 我们公司的客户端就用它。不会存在 c# 等其他语言与 c++功能模块调试的交叉问题。 qt5 之后 signal slot 已经使用 模板实现, 不再是以前的 字符串的方式了,这个方面的效率应该大大提高。 qt资料很多很多。想实现的功能 基本可以在 demo里面找到。 另外……
QT属于“一体化”方案,而GTK+属于“大杂烩”,各有长短。前者的维护者、资料资源集中,方便上手;后者开放、灵活。GTK+可以用到很多开源库,如GStreamer、libarchive(在Vala中直接支持)。
回复
Modeus 2013-01-30
引用 91 楼 blackshelf 的回复:
记得当初看《深入浅出MFC》的时候讲到过,还记得MFC为什么把消息处理搞成虚函数。。。至于消息映射,印象中讲的很清楚。。。不过具体内容我给忘了。
MFC使用虚函数,是为了让父类能调用子类重载的消息响应函数。而WTL用模板来达到这个目的,效率高了。 据说MFC这样做是因为当年微软的C++编译器很弱,不支持模板…… 而在ATL实现的COM中,同样采用虚函数,但有意剔除vtable,进一步优化。
回复
MaggieLin 2013-01-29
引用 61 楼 zdarkalone 的回复:
qt几乎是唯一选择了 mfc都没什么人维护。。。烂透了
MFC不是没人维护,微软已经外包给另外一家小公司维护了。。。。
回复
xiaoxiaokun888 2013-01-29
引用 3 楼 blackshelf 的回复:
引用 1 楼 MoreWindows 的回复:1. 如果程序的界面不是太复杂,用SDK或MFC开发都行。 2. 如果程序对界面的美观要求比较高并且改动比较多,用客户端引擎来做比较好,可以参考C#中的WPF编程。 3. 还有现在很多软件都是客户端嵌浏览器来做界面了,因为网页脚本写界面方便,JS+CSS也利于分工合作。 MFC从2002年就开始衰落了。。。。枉费我当……
但是你会发现,你再学其他的gui库非常容易,例如qt 安卓
回复
zp373860147 2013-01-29
个人认为,如果是大学生初学者,倒是可以花半年时间学习一下MFC、QT之类的东西,虽然有些过时,但了解一下这些曾经流行的技术还是有必要的,也算是一种鸡肋。但是现在公司里做界面几乎不会再用这些了。有专门卖钱的界面库,比如UIPower,DirectUI等,像腾讯百度360这些公司,则多是用DirectUI技术自己开发界面库给自己公司的产品用。小一些的公司为了人力效率的考虑,可用会用c#做,现在wpf是个不错的选择,但是性能不行。 个人认为以后客户端方向会是native+Web的方式,即用c++或c#等等做出一个窗口,里面用Web的方式做界面,这样开发成本大大降低。期待HTML5吧
回复
orafy 2013-01-29
魔兽世界的Launcher就是用的Qt额
回复
发动态
发帖子
C++ 语言
创建于2007-09-28

5.9w+

社区成员

C++ 语言相关问题讨论,技术干货分享,前沿动态等
申请成为版主
社区公告
暂无公告