Qt4 如何对QTreeWidgetItem进行word包装

Qt4 如何对QTreeWidgetItem进行word包装,qt4,pyqt,Qt4,Pyqt,我必须用可能太长而无法放在一行中的项(或项的子项)填充QTreeWidget,因此我正在寻找一种方法来包装它们 我想 myQTreeWidget.setWordWrap(True) (通过QtDesigner4完成)本可以完成这项工作,但事实似乎并非如此 我不知道这是否相关,但树被封装在拆分器框架中,因此包装应该是动态的,以便调整拆分器的大小 有什么想法吗?我使用PyQt4,但任何语言/绑定中的提示都会很受欢迎。setWordWrap只会引起单词边界的环绕。。。它不会把任何东西强加给新的生产线

我必须用可能太长而无法放在一行中的项(或项的子项)填充QTreeWidget,因此我正在寻找一种方法来包装它们

我想

myQTreeWidget.setWordWrap(True)
(通过QtDesigner4完成)本可以完成这项工作,但事实似乎并非如此

我不知道这是否相关,但树被封装在拆分器框架中,因此包装应该是动态的,以便调整拆分器的大小


有什么想法吗?我使用PyQt4,但任何语言/绑定中的提示都会很受欢迎。

setWordWrap
只会引起单词边界的环绕。。。它不会把任何东西强加给新的生产线


使用默认的
QTreeWidget
,您所寻找的是不可能的。我建议以另一种方式显示过长的文本,例如将鼠标悬停在文本上或使用单独的标签。TreeView每个项目不应包含超过一行文本。

我成功找到了一个解决方法:在WidgetItem中封装QLabel,将QLabel设置为具有换行功能

item = QTreeWidgetItem()
label = QLabel('long text here')
label.setWordWrap(True)

MyTree.addTopLevelItem(item)
MyTree.setItemWidget(item, 0, label)

这种行为正是我们想要的

但是,如果我使用item=QTreeWidgetItem(['some text\n and some more']),它将完全按照预期显示:一个项目显示在两行上。但是,真正的(动态)换行是不可能的。模拟换行的唯一方法是编写自己的换行函数,根据小部件的宽度向条目stings添加换行符,然后在小部件的大小发生变化时创建调用该函数的信号。我正在尝试在条目中封装QLabel或QText,因此,我从文本框继承了单词包装功能,不管它是否正确job@japs它返回相同的结果,您可以看到,所有其他行都使用2字符tooCool解决方案,谢谢分享。另外,您可能需要将答案中的“clinicalBox”更改为“label”。呵呵,对不起!这就是naive copy&paste的情况:)我在QLabel上的间距有问题:您也可以实现一个自定义委托来执行此操作:请注意,这对我很有效,但我遇到了崩溃。根据此问题,您需要为父项设置标签或保留对它的引用:。我选择了keep-a-reference版本:
self.label=QLabel('longtexthere')
。(我使用的是PySide版本1.2.0)