我已经将QLabel小部件添加到我的QTreeWidget中,以解决QTreeWidget中的单词环绕问题。 (见how to word wrap a QTreeWidgetItem)。 QLabel小部件似乎在文本周围留有空间,出于某种原因文本换行时会消失。当标签文本为空时,它也不会显示。在QTreeWidget中从QLabel中删除空间
我试着在QLabel上设置setContentsMargin(0,0,0,0)
,但没有奏效。我也试过setStyleSheet("border: 0px; margin: 0px; padding: 0px;")
,这也没有帮助。
截图:
你可以看到,它取决于描述的长QT是否决定把周围的单词间距缓冲。它只发生在单词换行启用时。进一步游戏似乎表明它依赖于描述字符串中的空格。字符串中没有空格可以防止单词附加空间。可能与QLabel用word wrap属性做了什么有关。
# This code is Ruby because I'm using the qtbindings gem
tree = Qt::TreeWidget.new
tree.setColumnCount(2)
tree.setHeaderLabels(["Name", "Description"])
top_node = Qt::TreeWidgetItem.new(["top"])
top_node.setCheckState(0, Qt::Unchecked)
tree.addTopLevelItem(top_node)
desc_label = Qt::Label.new("description")
desc_label.setWordWrap(true) # Remove and it works
tree.setItemWidget(top_node, 1, desc_label)
node = Qt::TreeWidgetItem.new(["test1"])
node.setCheckState(0, Qt::Unchecked)
top_node.addChild(node)
desc_label = Qt::Label.new("description1 is long and very interesting")
desc_label.setWordWrap(true) # Remove and it works
tree.setItemWidget(node, 1, desc_label)
你可以发布问题的屏幕截图吗?我刚刚尝试过,并且在文本周围没有看到任何额外的边距。 –
另外,提供一些代码,以重现问题。 – lpapp
我已经添加了屏幕截图,代码和更好的解释发生了什么以及为什么。 – Jason