请教一下各位佬, Pyqt5 中 QComboBox 选择框的文本怎么居中

244 天前
 Henrysun
问了 gpt ,试了很多办法,目前只能让下拉选项居中,已选择的框始终不能居中
1093 次点击
所在节点    Python
2 条回复
iorilu
244 天前
你文本前弄几个空格不行吗
Henrysun
244 天前
找到办法了,通过重构 QComboBox 类实现。
然后原本的 self.select_combo = QComboBox()改为重构后的 self.select_combo = CenteredComboBox()创建

现提供给大家参考
# --------------------------
class CenteredComboBox(QComboBox):
def paintEvent(self, event):
painter = QStylePainter(self)
option = QStyleOptionComboBox()
self.initStyleOption(option)

# 绘制控件框架
painter.drawComplexControl(QStyle.CC_ComboBox, option)

# 手动居中文本
text_rect = self.style().subControlRect(
QStyle.CC_ComboBox, option, QStyle.SC_ComboBoxEditField)
text_rect.adjust(25, 0, 0, 0)
painter.drawText(text_rect, Qt.AlignCenter, self.currentText())

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1113175

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX