qpushbutton 设置字体大小_QPushButton取消按压后文字下沉效果

本文分析了QPushButton文字下沉的原因,源于`QStyleOptionButton`的`State_Sunken`和`State_On`状态。当按钮被按下或选中时,会改变文本位置。解决方法是通过设置样式代理,使`PM_ButtonShiftHorizontal`和`PM_ButtonShiftVertical`返回0,从而消除文字下沉。同时,提到了如何调整QPushButton的字体大小。
摘要由CSDN通过智能技术生成

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值