我使用时遇到问题
Mac上的QTabWidget::setTabIcon()
。仅当选项卡不是最新时,才会显示图标。带有图标的选项卡变为当前选项后,该图标将替换为空白区域。
这是一个错误吗? OS限制?有什么问题吗?
答案 0 :(得分: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;