解决QComboBox列表项显示省略问题

3 篇文章 0 订阅

QComboBox的下拉列表项文字宽度如果长于控件本身的宽度,就会出现省略号,并且每次选取后光标会跳到文本框末尾,看不到开头内容。本文通过一个子类重写相关默认设置参数以解决该问题。

class ComboBox(QComboBox):
	def __init__(self, parent=None):
		super(ComboBox, self).__init__(parent)
		self.setView(QListView())
		self.setStyleSheet("QComboBox {font: 13px} "
		                   "QComboBox QAbstractItemView::item {min-height: 12px; min-width: 80px; }")
		self.view().setVerticalScrollBarPolicy(Qt.ScrollBarAsNeeded)
		# self.view().setHorizontalScrollBarPolicy(Qt.ScrollBarAsNeeded)
		self.view().setTextElideMode(Qt.ElideNone)  # 取消省略
		self.setLineEdit(QLineEdit())  # 绑定文本框
		self.activated.connect(lambda: self.lineEdit().setCursorPosition(0))   # 选中后重设光标在左侧
		# self.setFocusPolicy(False)

样式表中的min-width根据列表项中的最长文字设定。若小于文字长度会出现省略号。

若需启动ui时QComboBox中文字即从左侧开始显示,需在实例对象addItem之后,再添加setCursorPosition(0)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值