如何使用QT创建带有自定义图像的托盘图标?

问题描述:

我试图在窗口下使用QT创建一个自定义绘制的图标。下面的代码显示一个图标,但看起来透明,而不是颜色来填充:(。操作系统是WinXP的SP3,IDE是最新QTCreator。如何使用QT创建带有自定义图像的托盘图标?

int main(int argc, char* argv[]) 
{ 
    QApplication oApp(argc, argv); 

    QImage oImg(16, 16, QImage::Format_RGB32); 
    oImg.fill(qRgb(255, 0, 255)); 
    QPixmap oPixmap; 
    oPixmap.fromImage(oImg, Qt::ColorOnly); 
    QIcon oIcon(oPixmap); 
    QSystemTrayIcon oTrayIcon(oIcon); 
    oTrayIcon.show(); 

    return oApp.exec(); 
} 

我想不出为什么,但是如果保存oImg到文件中,可以看到图像未填充,但如果直接填充QPixmap而不是oImg,则可以看到图标

int main(int argc, char* argv[]) 
{ 
    QApplication oApp(argc, argv); 

    QPixmap oPixmap(16,16); 
    oPixmap.fill(qRgb(255, 0, 255)); 

    QIcon oIcon(oPixmap); 
    QSystemTrayIcon oTrayIcon(oIcon); 
    oTrayIcon.show(); 

    return oApp.exec(); 
} 
+0

感谢:)。 QT文档误导了我,告诉我'QPixmap用于使用,QImage用于修改“:)。 – grigoryvp 2009-10-02 08:08:23