标题:【提问】如何从QIcon到HICON进行转换?
作者:sunbo
日期:2005-12-23 07:58
内容:
在qt应用程序中对图标进行操作用QIcon很方便,同时遇到另一个问题,因为要使用操作系统的API函数,而操作系统的参数都是HICON,不知道怎样进行转换,请指教!
#1 [XChinux 12-23 08:52]
为什么要用WIN API函数呢?
QIcon可以直接以文件名作为参数
#2 [sunbo 12-23 20:01]
用操作系统的API是其他功能的需求,其实有一种方法我试过了,用LoadImage函数可以直接从文件读取图标,可得到图形文件的句柄,并转化成HICON。我的问题只是想让QIcon能够和操作系统的API打交道,找到一些QT与windows之间更容易一点的互操作,从而使Windows下的开发能更灵活的使用Qt类的方便性
#3 [XChinux 12-23 21:40]
就我个人来说,我是不建议直接操作API的,不利于移植。在Windows下用Qt,看重的就是它的移植性。所以如果确实需要用API的话,还是建议把它包装一下,留下X11下的接口,以便于移植。
不是在DevCPP里面能直接写WIN32程序么?那里怎样写,就可以在Qt里怎样写。
#4 [XChinux 12-24 11:02]
举个例子:
我想调用WinExec()这个WIN32 API函数
则,需要加上头文件:
windows.h
然后使用
WinExec("notepad.exe", SW_SHOW);
使用正常。
#5 [sunbo 12-25 23:40]
不是很理解你说的例子和上面的包装有什么关系。当然qt的最大好处在于它的可移植性,同时信号与槽也大大提高了对象间联系的方便性,完全基于qt的开发能够最佳的体现它的可移植性,但是另一方面尽管qt提供了400多个类,但也不能完全满足所有设计的需要,其实它本身也不过是一些API,在设计过程中借助第三方API往往是不可避免的,如果每遇到这种情况都要对其进行包装,这无异于对qt的再次开发,并且让接口涵盖所有qt已经涵盖的系统,这些工作往往会成倍的扩大原来项目的工作量,这也是一件很头痛的事。
个人认为,选择qt是否有必要倒是应该在项目设计初始先考虑考虑的。其实我也只是qt的初学者,理解尚浅,承蒙指教。