1、下沉原因
1.1、QPushButton源码
void QPushButton::initStyleOption(QStyleOptionButton *option) const
{
if (d->down || d->menuOpen)
option->state |= QStyle::State_Sunken;
if (d->checked)
option->state |= QStyle::State_On;
}
当按下和选中后
option->state 会有 QStyle::State_Sunken 或者 QStyle::State_On 标记
1.2、QCommonStyle 源码
void QCommonStyle::drawControl(ControlElement element, const QStyleOption *opt,
QPainter*p, const QWidget *widget) const{
Q_D(constQCommonStyle);switch(element) {caseCE_PushButtonLabel:if (const QStyleOptionButton *button = qstyleoption_cast(opt)) {if (button->state & (State_On |State_Sunken))
textRect.translate(proxy()->pixelMetric(PM_ButtonShiftHorizontal, opt, widget),
proxy()->pixelMetric(PM_ButtonShiftVertical, opt, widget));
proxy()->dr

本文分析了QPushButton文字下沉的原因,源于`QStyleOptionButton`的`State_Sunken`和`State_On`状态。当按钮被按下或选中时,会改变文本位置。解决方法是通过设置样式代理,使`PM_ButtonShiftHorizontal`和`PM_ButtonShiftVertical`返回0,从而消除文字下沉。同时,提到了如何调整QPushButton的字体大小。
最低0.47元/天 解锁文章
836

被折叠的 条评论
为什么被折叠?



