PyQt5 QComboBox 选择框文本居中

查找了许多教程,很多都是说的“下拉选项”居中,“已选中选项”的居中 有看到重构的方法,但是可能是因为版本不对或者其他原因没能生效,多次尝试后整理方法如下(依旧使用重构的方法)

复制代码
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())

#这里原本是select_combo = QComboBox(),重构类后使用重构后类名创建
select_combo  = CenteredComboBox()
复制代码

重构前:

 

重构后:

 

posted @   孙震宇  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示