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

时间:2009-10-02 07:23:57

标签: qt trayicon

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

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();
}

1 个答案:

答案 0 :(得分:1)

我无法找出原因,但如果将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();
}