QTabWidget::setTabIcon()
Macでの使用に問題があり
ます。アイコンは、タブが現在のタブでない場合にのみ表示されます。アイコン付きのタブが現在のタブになると、アイコンは空のスペースに置き換えられます。
これはバグですか?OSの制限?修正はありますか?
QMacStyle::drawControl メソッドでわかるように、アイコン要素を描画するためのコードはありません。
p->save();
rotateTabPainter(p, myTab.shape, myTab.rect);
QPalette np = tab->palette;
np.setColor(QPalette::WindowText, QColor(0, 0, 0, 75));
QRect nr = subElementRect(SE_TabBarTabText, opt, w);
nr.moveTop(-1);
int alignment = Qt::AlignCenter | Qt::TextShowMnemonic | Qt::TextHideMnemonic;
proxy()->drawItemText(p, nr, alignment, np, tab->state & State_Enabled,
tab->text, QPalette::WindowText);
np.setColor(QPalette::WindowText, QColor(255, 255, 255, 255));
nr.moveTop(-2);
proxy()->drawItemText(p, nr, alignment, np, tab->state & State_Enabled,
tab->text, QPalette::WindowText);
p->restore();
私の場合、迅速な解決策として、前のコードの前に次のコードを追加して、この問題にパッチを当てました。
QString oldText = myTab.text;
myTab.text = "";
QCommonStyle::drawControl(ce, &myTab, p, w);
myTab.text = oldText;