【问题标题】:How to set a Header to a QListView如何将标题设置为 QListView
【发布时间】:2013-11-20 10:40:34
【问题描述】:

我有一个 QListView,其中有 5 个项目。在我的 QListView 中说(美国、加拿大、丹麦、埃及、芬兰)。现在我想为所有这些项目设置一个通用的标题作为国家。如何将 Header 设置为 QListView。请帮忙。

【问题讨论】:

  • QListView 文档说:这个视图不显示水平或垂直标题;要显示带有水平标题的项目列表,请改用 QTreeView。
  • 首先,如果您使用 QListView,您将使用模型。如果您使用的是模型,子类它只是重载成员函数headerData ( int, Qt::Orientation, const QVariant &, int ) 以提供标题。

标签: qt qt4 qt5 qlistview qheaderview


【解决方案1】:

嗯,你不能直接但是,你可以这样做。

    mHb = new QHBoxLayout;
    {

        QVBoxLayout *tInnerVB = new QVBoxLayout;
        {
            QLabel *tHeader = new QLabel("Team List");
            tHeader->setFont(QFont("FontAwesome"));
            tInnerVB->addWidget(tHeader);

            mTeamViewModel->setStringList(BDatabase::instance()->getTeamList());
            mLeTeamList->setModel(mTeamViewModel);
            tInnerVB->addWidget(mLeTeamList);

        }
        mHb->addLayout(tInnerVB);

        tInnerVB = new QVBoxLayout;
        {
            QLabel *tHeader = new QLabel("Team Members");
            tHeader->setFont(QFont("FontAwesome"));
            tInnerVB->addWidget(tHeader);

            mMembersViewModel->setStringList(QStringList());
            mLeTeamMembers->setModel(mMembersViewModel);
            tInnerVB->addWidget(mLeTeamMembers);

        }
        mHb->addLayout(tInnerVB);


    }

输出如下:

此外,您可以通过标签更改方向、对齐方式和其他内容。很好的编码:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多