【发布时间】:2010-03-03 08:38:53
【问题描述】:
QTreeWidget 中是否可以单独缩进项目?
具体来说,我有一个包含文本、图标的列,其中一些包含一个复选框。没有 CheckBox 的项目会向左移动,因此图标和文本的缩进不会与其他项目内联。如果可能的话,是否可以使用隐藏的 CheckBox 来修复?
【问题讨论】:
标签: qt indentation qtreewidget qtreewidgetitem
QTreeWidget 中是否可以单独缩进项目?
具体来说,我有一个包含文本、图标的列,其中一些包含一个复选框。没有 CheckBox 的项目会向左移动,因此图标和文本的缩进不会与其他项目内联。如果可能的话,是否可以使用隐藏的 CheckBox 来修复?
【问题讨论】:
标签: qt indentation qtreewidget qtreewidgetitem
也许使用 Delegates 会给你一个很好的和正确的实现。您将有机会重新实现 paint() 和 sizeHint() 方法,因此,选择绘制 QTreeWidgetItem 的方式...
更多文档在这里:http://doc.trolltech.com/4.6/model-view-delegate.html
一个例子:http://doc.trolltech.com/4.6/itemviews-pixelator.html
希望对你有所帮助!
【讨论】:
您可以尝试在QTreeWidget::itemWidget() 返回的小部件上使用QWidget::setContentMargins()。
【讨论】:
QTreeWidget::itemWidget() 只有在小部件设置为 QTreeWidget::setItemWidget() 时才会返回非 NULL 值。为了解决您的问题,我想您必须创建自己的项目来显示图标并处理复选框/额外空间。