0

QTabWidget::setTabIcon()Macでの使用に問題があり ます。アイコンは、タブが現在のタブでない場合にのみ表示されます。アイコン付きのタブが現在のタブになると、アイコンは空のスペースに置き換えられます。

これはバグですか?OSの制限?修正はありますか?

4

1 に答える 1

0

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;
于 2013-04-09T07:51:15.487 に答える