当前位置:编程学习 > wap >>

对Qt编程的疑问

写Qt程序也有段时间了,感觉Qt比MFC要清晰很多,代码量也少很多,相关的概念也少很多,不像VC的GDI中,有很多作图的概念。但是缺点是稳定性差,bug多。
VC作为微软的看家本领,稳定性基本上是工业级别的。bug基本没有,漏洞就不知道了。而且生成的代码依赖性小,占用空间小。

在编写Qt程序的过程中,要实现相关的功能,网上搜索相关的文档和代码,看Qt助手,大多数可以解决常见的问题,不过有些比较偏僻的问题,搞不定,找不到相关的实现。这种实现都是靠Qt已经实现的库完成的,我们是创造不了的。虽然Qt是开源的,自己可以查看修改源码来实现,不过对于很多下游开发者来修改上游的基础库代码还是比较难的。

就比如我前段时间提的一个问题。http://bbs.csdn.net/topics/390464532
里面是一个实现表头的背景色问题,根据助手里的方法,很多属性比如字体风格,字体颜色,字体背景等都可以通过return 返回值的方式设置,但是在我的代码里,字体风格,字体颜色都可以设置,唯独背景色设置不起作用,也不知道是什么原因,问了些人,他们也不知道怎么做。还有些人让我看Qt源代码,看源代码这个事情对我难度还是很大,而且这已经不算我们下游应用层的责任了,这纯粹是Qt开发者的任务,等于给了个烂摊子让我们收拾。想到这里,真感觉还是VC比较好吧。首先bug少,用的人多,资料也多。开发起来应该要轻松很多。

现在的问题是,你们怎么看待这个问题?你们在遇到Qt开发中无法解决的问题时,都怎么做的? Qt MFC VC bug --------------------编程问答-------------------- 自己                       顶 --------------------编程问答-------------------- 这个问题啊,如果是我遇到的,无法在csdn解决的,就到Qt官网论坛上提问。 --------------------编程问答-------------------- 1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己 --------------------编程问答-------------------- 遇到实在解决不了的问题,依然是蛋疼地硬着头皮迎难而上,坚持下去有时就解决了。
源码看不懂,基础也不够扎实 --------------------编程问答-------------------- MFC比Qt稳定,这个是很奇怪的说法。MFC多年停滞不前,Qt飞速发展。根本就不是一个时代的东东了。
同意:MFC开发出exe比较小。 --------------------编程问答--------------------
引用 2 楼 jiangcaiyang123 的回复:
这个问题啊,如果是我遇到的,无法在csdn解决的,就到Qt官网论坛上提问。

这个方法应该有效。 --------------------编程问答--------------------
引用 3 楼 stereoMatching 的回复:
1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己

MFC开发工作量和难度确实比较大,不过群众基数大啊。资料多,可寻求帮助的人也多。 --------------------编程问答--------------------
引用 6 楼 chengshiding 的回复:
Quote: 引用 2 楼 jiangcaiyang123 的回复:

这个问题啊,如果是我遇到的,无法在csdn解决的,就到Qt官网论坛上提问。

这个方法应该有效。

来吧,在qt-project的这个版块:http://qt-project.org/forums/viewforum/39/
和这个版块:http://qt-project.org/forums/viewforum/10/
发帖吧。 --------------------编程问答--------------------
引用 4 楼 kaida1234 的回复:
遇到实在解决不了的问题,依然是蛋疼地硬着头皮迎难而上,坚持下去有时就解决了。
源码看不懂,基础也不够扎实

有些问题折腾几天就解决了,不过这个确实卡住没辙了。 --------------------编程问答--------------------
引用 5 楼 jdwx1 的回复:
MFC比Qt稳定,这个是很奇怪的说法。MFC多年停滞不前,Qt飞速发展。根本就不是一个时代的东东了。
同意:MFC开发出exe比较小。

微软一直在更新MFC啊,感觉如果有人在使用MFC,微软就会一直更新,C#也代替不了MFC吧,毕竟MFC是对win32 API的封装效率高,能直接调用API实现底层功能,在嵌入式领域可见一斑啊。 --------------------编程问答--------------------
引用 8 楼 jiangcaiyang123 的回复:
Quote: 引用 6 楼 chengshiding 的回复:

Quote: 引用 2 楼 jiangcaiyang123 的回复:

这个问题啊,如果是我遇到的,无法在csdn解决的,就到Qt官网论坛上提问。

这个方法应该有效。

来吧,在qt-project的这个版块:http://qt-project.org/forums/viewforum/39/
和这个版块:http://qt-project.org/forums/viewforum/10/
发帖吧。

大神手指头别这么快啊,呵呵 --------------------编程问答-------------------- VC的发展过程经历了二十年了,看IDE开发环境就知道了,支持的功能非常强大、简洁。Qt还是比较年轻的选手,是在面向对象编程思想成熟之后产生的,bug虽然很多,但是只要合理规避这些问题,还是能够实现快速开发的目的。
换一种思维方式,如果十年之后,国内软件版权真正受到重视,所有商用软件都要付费使用,盗版遭到毁灭性打击。到时候权衡的就是4000美金值不值的问题了http://www.amazon.com/Visual-Studio-2010-Ultimate-MSDN/dp/B0038KNER0/ref=sr_1_2?s=software&ie=UTF8&qid=1332941261&sr=1-2开源实现体现的是人类的理想主义精神,支持的人多了,实现的功能也会多,用的人多了,说不定bug就解除了。

ps:比如楼主举的例子,代码里不好实现,但是直接在stylesheet里面设置就完了,或者可以使用qss配置文件修改,个人认为qss的界面风格设定方式很好,把界面和功能设计解耦,设计与开发过程也可以实现多人合作。减少出错概率,修改起来也方便,至少改界面可以不用修改代码。 --------------------编程问答--------------------
引用 3 楼 stereoMatching 的回复:
1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己


我觉得MFC确实是。。。
靠Qt开发apps养活自己,,,,这个也可以?形成一个行业了吗? --------------------编程问答--------------------
引用 13 楼 w860316 的回复:
Quote: 引用 3 楼 stereoMatching 的回复:

1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己


我觉得MFC确实是。。。
靠Qt开发apps养活自己,,,,这个也可以?形成一个行业了吗?

这个可以有。我看到QTCN上有人发布Qt外包供求信息,可见一斑。 --------------------编程问答--------------------
引用 14 楼 jiangcaiyang123 的回复:
Quote: 引用 13 楼 w860316 的回复:

Quote: 引用 3 楼 stereoMatching 的回复:

1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己


我觉得MFC确实是。。。
靠Qt开发apps养活自己,,,,这个也可以?形成一个行业了吗?

这个可以有。我看到QTCN上有人发布Qt外包供求信息,可见一斑。

那我也要好好学习了,哈哈。请问一下,MFC现在是不行了,那您觉得win32 api还有必要学习一下吗?比如《windows程序设计》这本书。现在在windows平台上开发真是头疼,又出来个.net,不知道怎么搞啊,我正在面临学习进阶选择。 --------------------编程问答--------------------
引用 15 楼 w860316 的回复:
Quote: 引用 14 楼 jiangcaiyang123 的回复:

Quote: 引用 13 楼 w860316 的回复:

Quote: 引用 3 楼 stereoMatching 的回复:

1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己


我觉得MFC确实是。。。
靠Qt开发apps养活自己,,,,这个也可以?形成一个行业了吗?

这个可以有。我看到QTCN上有人发布Qt外包供求信息,可见一斑。

那我也要好好学习了,哈哈。请问一下,MFC现在是不行了,那您觉得win32 api还有必要学习一下吗?比如《windows程序设计》这本书。现在在windows平台上开发真是头疼,又出来个.net,不知道怎么搞啊,我正在面临学习进阶选择。

看需求,时间最宝贵。在有限的时间内达到最高投入产出比这样的学习最值得。比如说如果不做跨平台,而对性能要求高的,可以抛弃Qt和MFC,直奔win32 API。目前win32 API的学习除了MSDN外,还有经典的《Windows程序设计》。有空可以看看。.Net那些可学可不学。目前.Net能够做到的东西使用Qt照样能够做到。但是由于历史原因,社会上Windows、MFC开发者依然非常得多,想要他们一时间转变观念比较困难。 --------------------编程问答--------------------
引用 16 楼 jiangcaiyang123 的回复:
Quote: 引用 15 楼 w860316 的回复:

Quote: 引用 14 楼 jiangcaiyang123 的回复:

Quote: 引用 13 楼 w860316 的回复:

Quote: 引用 3 楼 stereoMatching 的回复:

1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己


我觉得MFC确实是。。。
靠Qt开发apps养活自己,,,,这个也可以?形成一个行业了吗?

这个可以有。我看到QTCN上有人发布Qt外包供求信息,可见一斑。

那我也要好好学习了,哈哈。请问一下,MFC现在是不行了,那您觉得win32 api还有必要学习一下吗?比如《windows程序设计》这本书。现在在windows平台上开发真是头疼,又出来个.net,不知道怎么搞啊,我正在面临学习进阶选择。

看需求,时间最宝贵。在有限的时间内达到最高投入产出比这样的学习最值得。比如说如果不做跨平台,而对性能要求高的,可以抛弃Qt和MFC,直奔win32 API。目前win32 API的学习除了MSDN外,还有经典的《Windows程序设计》。有空可以看看。.Net那些可学可不学。目前.Net能够做到的东西使用Qt照样能够做到。但是由于历史原因,社会上Windows、MFC开发者依然非常得多,想要他们一时间转变观念比较困难。

转变观念吧,大神们,vcer们 --------------------编程问答--------------------
引用 16 楼 jiangcaiyang123 的回复:
Quote: 引用 15 楼 w860316 的回复:

Quote: 引用 14 楼 jiangcaiyang123 的回复:

Quote: 引用 13 楼 w860316 的回复:

Quote: 引用 3 楼 stereoMatching 的回复:

1 : 多google,少百度
2 : 上英文论坛去,stack overflow, Qt centre, Qt project等
3 : 公司有钱地话,直接购买Qt地商业license,如此一来,digia会很乐意为你解决问题
4 : mfc也有bugs, 只是你没有碰上而已,我还没见过那个大型地软体没有bugs的
5 : Qt5.1的QtQuick支援control module了,这是专为桌面开发而设计的。Qt日后有关
gui方面的改进,应该都会优先集中在qml上了,情况允许的话快学qml
6 : 作为描述UI的工具,declarative language的qml可以提高开发速度,降低代码量
7 : 每个libs都有各自地优点和缺点

无论如何,我不会选择微软地mfc,不想被单一平台绑住
公司非要mfc?我走就是了,压根不想碰到这东西
最终目标是脱离公司,靠Qt开发apps养活自己


我觉得MFC确实是。。。
靠Qt开发apps养活自己,,,,这个也可以?形成一个行业了吗?

这个可以有。我看到QTCN上有人发布Qt外包供求信息,可见一斑。

那我也要好好学习了,哈哈。请问一下,MFC现在是不行了,那您觉得win32 api还有必要学习一下吗?比如《windows程序设计》这本书。现在在windows平台上开发真是头疼,又出来个.net,不知道怎么搞啊,我正在面临学习进阶选择。

看需求,时间最宝贵。在有限的时间内达到最高投入产出比这样的学习最值得。比如说如果不做跨平台,而对性能要求高的,可以抛弃Qt和MFC,直奔win32 API。目前win32 API的学习除了MSDN外,还有经典的《Windows程序设计》。有空可以看看。.Net那些可学可不学。目前.Net能够做到的东西使用Qt照样能够做到。但是由于历史原因,社会上Windows、MFC开发者依然非常得多,想要他们一时间转变观念比较困难。

非常感谢。在看您的帖子之前,我分析了一下网上的各种信息,暂定的选择也是,win32 api+Qt,简单的应用程序或者对效率要求较高就直接用api,如果界面复杂就用Qt算了。我是做单片机开发的,想转嵌入式方向,.net也不知道怎么用。 --------------------编程问答--------------------
引用 18 楼 w860316 的回复:
非常感谢。在看您的帖子之前,我分析了一下网上的各种信息,暂定的选择也是,win32 api+Qt,简单的应用程序或者对效率要求较高就直接用api,如果界面复杂就用Qt算了。我是做单片机开发的,想转嵌入式方向,.net也不知道怎么用。 

做单片机,而且对界面的效率要求很高,看看qml吧
尤其是QtQuick2,在描述UI方面表现的很好,性能很棒(需要gpu的支援)
补充:移动开发 ,  Qt
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,