我必须使用可能碰巧太长而无法放入单行的项目(或项目的子项)来填充QTreeWidget,因此我正在寻找一种方法来对它们进行自动换行。
我想
myQTreeWidget.setWordWrap(True)
(通过QtDesigner4完成)完成了这项工作,但情况似乎并非如此。
我不知道它是否相关,但树被包围在一个分割器框架中,因此包装应该以某种方式动态,以允许分割器的大小调整。
有什么想法吗?我使用PyQt4,但任何语言/绑定的提示都会受到赞赏。
答案 0 :(得分:18)
我成功找到了一个解决方法:我在WidgetItem中包含一个QLabel,将QLabel设置为具有自动换行功能。
item = QTreeWidgetItem()
label = QLabel('long text here')
label.setWordWrap(True)
MyTree.addTopLevelItem(item)
MyTree.setItemWidget(item, 0, label)
行为正是所期望的行为!!
答案 1 :(得分:0)
setWordWrap
只会导致词边界的缠绕......它不会强迫任何东西进入新的行。
您要找的是不可能,默认为QTreeWidget
。我建议以另一种方式显示太长的文本,例如鼠标悬停文本或单独的标签。 TreeViews每个项目不应包含多行文本。