2009-10-02 16 views
0

J'ai essayé de créer une icône personnalisée en utilisant QT sous la fenêtre. Le code suivant affiche une icône, mais il semble transparent au lieu de :(rempli de couleur. OS est Windows XP SP3, IDE est le dernier QtCreator.Comment créer une icône de plateau avec une image personnalisée en utilisant 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(); 
} 

Répondre

1

Je ne pouvais pas comprendre pourquoi, mais si vous enregistrez OIMG à un fichier, vous pouvez voir que l'image n'est pas remplie.Mais si vous remplissez QPixmap directement au lieu de oImg vous pouvez voir l'icône

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

Merci :). La documentation de QT m'a trompé en disant que 'QPixmap est pour l'usage, QImage pour les modifications' :). – grigoryvp