我試圖在QAction中設置透明圖標,然後將其添加到菜單和工具欄中。我正在用樣式表設計應用程序。圖標透明度可以工作,但圖標正在工具欄上繪製,看起來像圖標左側和頂部邊緣的1px黑色邊框。工具欄上的透明圖標畫出醜陋的邊框
現在,我所有的圖標都存儲在一個大的圖像文件(PNG,具有透明度) - 它們被保存在一個大的條狀圖中。要解壓縮到一個單一的QIcon,我這樣做:
// load icon strip:
QPixmap large;
large.load(":/icons/tb_icons_l.png", "PNG", Qt::OrderedAlphaDither);
QSize largeSize(large.width()/ICON_COUNT, large.height());
// create individual icon pixmap
QPixmap iconLarge(largeSize);
// fill with transparent pixels:
iconLarge.fill(QColor(0,0,0,0));
// copy pixel data from icon strip to image:
{
QPainter p(&iconLarge);
p.setBackgroundMode(Qt::TransparentMode);
p.drawPixmap(0,0,large, largeSize.width() * i, 0, largeSize.width(), largeSize.height()); // 'i' is the icon index.
}
return QIcon(iconLarge);
我知道問題出在幾行字上面,因爲當我加載從單個文件圖標來代替這一切完美的作品(無黑邊)。
以前有沒有其他人看過類似的東西?任何人都可以提出一些改變,將刪除難看的黑色邊框?邊框絕對是圖像的一部分,而不是工具欄按鈕本身的一部分。
我在Linux下運行最新的Qt 4.5。 – Thomi
謝謝 - 你是對的。有一個我沒有看到的新bug修復版本。更新解決了問題。乾杯!至少我的代碼不是怪罪! – Thomi