我遇到了自动换行下拉列表元素的问题QComboBox
,即如果元素不适合列表的宽度,它会显示如下:
очень дли...элемент
我想实现元素的值全显示,如果空间不足自动换行,结果是这样的:
очень длинный
элемент
我做了类似的事情QTableWidget
,并且该方法在那里有效resizeRowsToContents()
,但QComboBox
在此不起作用。
是否有可能实现这一点QComboBox
?
例子:
combo1 = QComboBox(self)
combo1.setGeometry(100, 270, 350, 50)
combo1.addItem("ооооченьььь длинннннннннннннннный элемееееееент")
我需要去掉中间的点,让元素完全显示出来,那些不适合的字符被转移到下一行。
Python 3.6.2
PyQt5 5.15.4
我建议您尝试另一种可能的选择(不完全是自动转移),
与您已经提供的不同。
有两条外观相似的线。
看看他们如何看待申请:
sizeAdjustPolicy:SizeAdjustPolicy
QComboBox
指定在添加新内容或内容更改时应 如何调整大小提示sizePolicy:QSizePolicy 包含
layout
小部件的默认行为。还可以查看它在您的 PC 上可用的不同样式的外观。
该类
QStyleFactory
创建对象QStyle
。类
QStyle
是封装图形用户界面外观的抽象基类。使用该函数QStyleFactory
创建一个对象 并定义样式。 样式要么是内联的,要么是从样式插件动态加载的(参见QStylePlugin)。QStyle
create()
key
keys
可以使用函数获得真实值keys()
。它们通常包括“
windows
”和“fusion
”。根据平台,“
windowsvista
”和“macintosh
”可能可用。请注意,键不区分大小写。猴子.png
要得到这个:
您将需要一个QListView(带有微小但重要的调整)、一个QStringListModel(这只是一个示例,您可以使用任何其他模型)和QComboBox本身。
例子: