PyQt5如何自定义QLineEdit文本框样式及设置文本格式
QLineEdit自定义外观不生效解决方案
你之前自定义样式失效核心是两个高频踩坑点:
- 控件加入布局后,直接调用
resize()设置的尺寸会被布局规则覆盖,尺寸修改完全不生效 - 没有通过QSS(Qt样式表)统一配置边框、圆角、内边距属性,零散修改单个控件属性无法实现统一的自定义外观
可直接复用的实现代码
self.tbx = QLineEdit(self) # 布局场景下用固定高度接口设置尺寸,替代resize self.tbx.setFixedHeight(75) # 写入QSS匹配参考外观 self.tbx.setStyleSheet(""" QLineEdit { border: 2px solid #d2d2d2; border-radius: 12px; padding: 0 16px; background: #fff; } QLineEdit:focus { border-color: #4a90e2; } """) # 设置文本格式 from PyQt5.QtGui import QFont tbx_font = QFont() tbx_font.setPointSize(16) self.tbx.setFont(tbx_font) layout.addWidget(self.tbx) layout.addStretch()
配置调整说明
- 圆角弧度:修改
border-radius的数值即可调整圆角大小,数值越大圆角越明显 - 文字大小:调整
setPointSize()的参数适配视觉需求,75px高度下16号字的垂直居中效果和参考样式匹配度最高 - 样式不生效排查:如果写完QSS没有效果,检查父控件是否设置了无选择器的全局QSS,导致子控件样式被覆盖
- 文字贴边问题:通过
padding参数控制左右内边距即可,不要随意添加上下内边距,否则会破坏文字垂直居中效果
内容的提问来源于stack exchange,提问作者THE GM
相关产品推荐
相关产品推荐

