下面是一个更详细的示例,演示了如何使用Qt中的继承和自定义来创建一个带有树视图(QTreeView
)的窗口应用程序:
#include <QApplication>
#include <QMainWindow>
#include <QTreeView>
#include <QStandardItemModel>
class MyTreeView : public QTreeView
{
public:
MyTreeView(QWidget *parent = nullptr)
: QTreeView(parent)
{
// 创建数据模型
QStandardItemModel *model = new QStandardItemModel(this);
// 添加根节点
QStandardItem *rootItem = model->invisibleRootItem();
// 添加第一级子节点
for (int i = 1; i <= 3; ++i) {
QString nodeName = QString("Node %1").arg(i);
QStandardItem *nodeItem = new QStandardItem(nodeName);
// 添加第二级子节点
for (int j = 1; j <= 2; ++j) {
QString childName = QString("Child %1-%2").arg(i).arg(j);
QStandardItem *childItem = new QStandardItem(childName);
nodeItem->appendRow(childItem);
}
rootItem->appendRow(nodeItem);
}
// 将数据模型设置给树视图
setModel(model);
}
};
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
QMainWindow mainWindow;
MyTreeView treeView(&mainWindow);
mainWindow.setCentralWidget(&treeView);
mainWindow.resize(300, 400);
mainWindow.show();
return app.exec();
}
在这个示例中,我们创建了一个名为 MyTreeView
的自定义类,继承自 QTreeView
。在构造函数中,我们创建了一个 QStandardItemModel
对象作为数据模型,并添加根节点和子节点。
然后,在主函数中,我们创建了一个 QMainWindow
窗口对象,并将 MyTreeView
实例设置为窗口的中央部件。最后,我们调整窗口的大小并显示出来。
运行这个示例代码,你会看到一个带有树视图的窗口应用程序。你可以通过修改数据模型以及自定义节点和子节点的名称来满足你的需求。
内容由零声教学AI助手提供,问题来源于学员提问