• 12486阅读
  • 6回复

【提问】如何从QIcon到HICON进行转换? [复制链接]

上一主题 下一主题
离线sunbo
 
只看楼主 倒序阅读 楼主  发表于: 2005-12-23
在qt应用程序中对图标进行操作用QIcon很方便,同时遇到另一个问题,因为要使用操作系统的API函数,而操作系统的参数都是HICON,不知道怎样进行转换,请指教!
[ 此贴被XChinux在2005-12-23 08:41重新编辑 ]
离线XChinux

只看该作者 1楼 发表于: 2005-12-23
为什么要用WIN API函数呢?
QIcon可以直接以文件名作为参数
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线sunbo
只看该作者 2楼 发表于: 2005-12-23
用操作系统的API是其他功能的需求,其实有一种方法我试过了,用LoadImage函数可以直接从文件读取图标,可得到图形文件的句柄,并转化成HICON。我的问题只是想让QIcon能够和操作系统的API打交道,找到一些QT与windows之间更容易一点的互操作,从而使Windows下的开发能更灵活的使用Qt类的方便性
离线XChinux

只看该作者 3楼 发表于: 2005-12-23
就我个人来说,我是不建议直接操作API的,不利于移植。在Windows下用Qt,看重的就是它的移植性。所以如果确实需要用API的话,还是建议把它包装一下,留下X11下的接口,以便于移植。

不是在DevCPP里面能直接写WIN32程序么?那里怎样写,就可以在Qt里怎样写。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线XChinux

只看该作者 4楼 发表于: 2005-12-24
举个例子:
我想调用WinExec()这个WIN32 API函数
则,需要加上头文件:
windows.h
然后使用
WinExec("notepad.exe", SW_SHOW);

使用正常。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线sunbo
只看该作者 5楼 发表于: 2005-12-25
不是很理解你说的例子和上面的包装有什么关系。当然qt的最大好处在于它的可移植性,同时信号与槽也大大提高了对象间联系的方便性,完全基于qt的开发能够最佳的体现它的可移植性,但是另一方面尽管qt提供了400多个类,但也不能完全满足所有设计的需要,其实它本身也不过是一些API,在设计过程中借助第三方API往往是不可避免的,如果每遇到这种情况都要对其进行包装,这无异于对qt的再次开发,并且让接口涵盖所有qt已经涵盖的系统,这些工作往往会成倍的扩大原来项目的工作量,这也是一件很头痛的事。
个人认为,选择qt是否有必要倒是应该在项目设计初始先考虑考虑的。其实我也只是qt的初学者,理解尚浅,承蒙指教。
离线XChinux

只看该作者 6楼 发表于: 2005-12-26
例子和包装没什么关系,只是说明,想使用Win32 API直接使用就行了,有兴趣的话,可以自己写一个QIcon和HICON API进行沟的包装,否则那就直接使用文件进行中转使用。
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个