我必須使用項目(或項目的子項)來填充QTreeWidget,這些項目可能碰巧太長而無法放在一行中,所以我正在尋找一種將它們包裝起來的方法。如何自動換行QTreeWidgetItem
我想
myQTreeWidget.setWordWrap(True)
(通過QtDesigner4完成)會做的工作,但是這似乎並不如此。
我不知道它是否相關,但樹被包圍在分離器框架中,所以包裝應該是某種動態的以允許分離器的大小調整。
任何想法?我使用PyQt4,但任何語言/綁定提示將不勝感激。
我必須使用項目(或項目的子項)來填充QTreeWidget,這些項目可能碰巧太長而無法放在一行中,所以我正在尋找一種將它們包裝起來的方法。如何自動換行QTreeWidgetItem
我想
myQTreeWidget.setWordWrap(True)
(通過QtDesigner4完成)會做的工作,但是這似乎並不如此。
我不知道它是否相關,但樹被包圍在分離器框架中,所以包裝應該是某種動態的以允許分離器的大小調整。
任何想法?我使用PyQt4,但任何語言/綁定提示將不勝感激。
我成功地找到了一個解決方法:我在WidgetItem中封裝QLabel,設置QLabel具有自動換行功能。
item = QTreeWidgetItem()
label = QLabel('long text here')
label.setWordWrap(True)
MyTree.addTopLevelItem(item)
MyTree.setItemWidget(item, 0, label)
行爲正是所期望的行爲!
setWordWrap
只是引起圍繞字邊界的包裝...它不會強制任何東西到一個新的行。
你在找什麼是不可能與默認QTreeWidget
。我建議以替代方式顯示太長的文本,例如鼠標懸停文本或單獨的標籤。 TreeViews不應該包含每個項目多於一行的文本。
很酷的解決方案,謝謝分享。另外,您可能需要在答案中將「clinicalBox」更改爲「標籤」。 –
呵呵,對不起!這就是天真的複製和粘貼:) – japs
我遇到了QLabel上的間距問題:http://stackoverflow.com/questions/21007272/remove-space-from-qlabel-in-a-qtreewidget – Jason