【问题标题】:Populating QTreeview with item C++用 C++ 项填充 QTreeview
【发布时间】:2016-07-24 03:18:26
【问题描述】:

我在这里把自己逼疯了。如何使用 QtCreator 在 C++ 中填充 QTreeView 和一些简单的数据?我是新手,我有 C# 和 wpf 的背景。感谢您的帮助,并对基本问题感到抱歉,但是我还没有在网上找到一个显示简单示例的解决方案。所有示例都显示了文件和文件夹,这不是我正在做的。

Sports
|____ Soccer
|____ Basketball
|____ Football
|____ Tennis
Teams
|____ Cowboys
|____ Packers
|____ Lions
|____ Tennessee
Players
|____ Ronald
|____ Warner
|____ Robinson

这是我的 ma​​inwindow.h 文件

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QtCore>
#include <QtGui>

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

private:
    Ui::MainWindow *ui;
};

#endif // MAINWINDOW_H

【问题讨论】:

  • 您可以按照与显示文件和文件夹的示例相同的方式进行操作。例如,“Sports”是包含“Soccer”、“Basketball”、“Football”和“Tennis”文件的文件夹。即使您没有显示文件和文件夹,构建项目的代码也是相同的。
  • 吹毛求疵:您不需要包含&lt;QtGui&gt;&lt;QtCore&gt;QMainWindow。包括&lt;QtWidgets&gt;,这就足够了。您还可以包含"ui_mainwindow.h",然后按值而不是指针保持ui :)

标签: c++ qt


【解决方案1】:

QTreeView 需要使用您的模型类。尝试使用QTreeWidget,它可以与QString 和图标等一起使用。尝试将sn-p 放入主小部件的构造函数中。它显示具有一个子项和一个附加列的顶级项。如果您在设计时知道所有项目,则将它们添加到 Qt 设计器中。

auto w = new QTreeWidget;
w->setColumnCount(2);
auto t = new QTreeWidgetItem(QStringList() << "Top" << "Col2 a");
auto i = new QTreeWidgetItem(QStringList() << "Some" << "Col2 b");
t->addChild(i);
w->addTopLevelItem(t);
w->show();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 2014-12-06
    • 2022-07-20
    • 2010-11-14
    • 2015-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多