QListWidget中使用文本的行(使用setItemWidget)会停止换行并变得比列表所能容纳的更宽

时间:2017-01-29 20:53:38

标签: qt pyqt qt5 pyqt5 qlistwidget

我有QListWidget并且正在使用setItemWidget()来显示QLabels,其中包含setWordWrap()

我遇到的问题是,当我的表格中有一行的文本宽度大于480 px时,行的宽度变得比QListWidget中的宽度宽。

当调整列表大小时,我得到这样的行为:如果我调整大小并且行宽超过480像素,则由于自动换行,单词将在“行之间”移动。但是,如果我的宽度低于480像素,则没有区别:包装完成但线条的字长不会改变。

实施例

约480 px宽行

enter image description here

超过480

enter image description here

比480

更窄

enter image description here

其他细节

当我处理QLabels中字符较少的行时,问题仍然存在,但直到行比之前更窄(小于480)。问题开始发生的像素数是动态的,取决于文本中的字符数。 480似乎是一个上限,换句话说,无论文本的长度如何,如果行是480或更宽,将永远不会有问题。

文字较短的示例:

enter image description here

代码

list_item = QListWidgetItem()
row_layout = QHBoxLayout()
label = QLabel(label_text_sg)
label.setWordWrap(True)
row_layout.addWidget(row_label_w8)
row_widget = QWidget()
row_widget.setLayout(row_layout_l7)
row_widget.adjustSize()
list_item.setSizeHint(row_w6.sizeHint())
self.list_widget.addItem(list_item)
self.list_widget.setItemWidget(list_item, row_widget)

我已尝试为setSizePolicyrow_widget试用label,但似乎没有任何影响

我可以做些什么来解决这个问题?感谢帮助!

恭敬地,亲切的问候, 托德

0 个答案:

没有答案