gpt4 book ai didi

QTreeview : How to change the defalut position of the text item

转载 作者:行者123 更新时间:2023-12-01 01:15:25 28 4
gpt4 key购买 nike

您能否让我知道如何更改 QTreeView 中项目的位置。默认情况下,项目显示在最左侧和项目框的中心。但是我应该如何更改它以使其显示在顶部

最佳答案

使用 Qt 内置项目模型

如果您正在使用例如QFileSystemModel你必须继承它并覆盖 data()行为:

class MyFileSystemModel : public QFileSystemModel {
public:
QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const {
if (role == Qt::TextAlignmentRole)
return Qt::AlignTop; //maybe different result depending on column/row
else
return QFileSystemModel::data(index, role);
}

然后改用那个类。

使用自己的元素模型

如果您实现了自己的项目模型,您所要做的就是处理 Qt::TextAlignmentRoledata() :
QVariant MyTreeModel::data (const QModelIndex &index, int role) const {
if (role == Qt::TextAlignmentRole)
return Qt::AlignTop; //maybe different result depending on column/row

//handle other roles

return QVariant();
}

TreeView 现在应该自动将项目与顶部对齐。

如果您想进一步自定义外观, hereQTreeView 使用的角色.如需更多定制,我认为您必须实现自己的 QTreeView子类。

使用 QStandardItemModel

如果您没有实现自己的模型而是使用了 QStandardItemModel你必须打电话 setTextAlignment(Qt::Alignment alignment)Qt::AlignTop在将它们添加到模型之前在您的标准项目上。

关于QTreeview : How to change the defalut position of the text item,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12368959/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com