在QTreeWidget中,行高是由样式表和字体大小决定的,无法通过setSizeHint方法来设置小于一定值的高度。如果您想要设置更小的行高,可以使用自定义代理类。
以下是一个简单示例:
class CustomDelegate : public QStyledItemDelegate
{
public:
QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex& index) const override
{
return QSize(0, 30); // 设置行高为30像素
}
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override
{
// 绘制项内容(此处省略)
}
};
// 在创建树窗口时设置代理
CustomDelegate* delegate = new CustomDelegate();
treeWidget->setItemDelegate(delegate);
请注意,在使用自定义代理时,您需要手动处理所有绘制逻辑,并且可能需要一些额外的编码工作来使其与其他组件配合使用。