目的
学习一下QT的控件,今天是ColumnView。QColumnView 是一个多列视图控件,每一列都可以包含多个项目。它继承自 QAbstractItemView,并支持多列项目的显示、拖放操作和编辑功能。
用示例代码运行后基本的样子就是下面这样的。运行的时候先显示Root Node ,点击后出现Child node1,然后点击继续出现后续的列
[注意]
这个控件已经被遗弃,不建议再使用。并推荐使用 QTreeView 或 QTableView 来代替
示例代码
Python
import sys
from PySide6.QtWidgets import (
QApplication,
QColumnView,
)
from PySide6.QtCore import Qt
from PySide6.QtGui import QStandardItemModel, QStandardItem
class MainWindow(QColumnView):
def __init__(self):
super().__init__()
QStandardItemModel(self)
model = QStandardItemModel()
rootNode = QStandardItem("Root Node")
childNode1 = QStandardItem("Child Node 1")
childNode2 = QStandardItem("Child Node 2")
rootNode.appendRow(childNode1)
rootNode.appendRow(childNode2)
model.appendRow(rootNode)
self.setModel(model)
app = QApplication(sys.argv)
window = MainWindow()
window.show()
sys.exit(app.exec())
C++
#include <QApplication>
#include <QColumnView>
#include <QStandardItemModel>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
// 创建 QColumnView 对象
QColumnView columnView;
// 创建数据模型
QStandardItemModel model;
// 添加根节点
QStandardItem* rootNode = new QStandardItem("Root");
// 添加子节点
QStandardItem* child1 = new QStandardItem("Child 1");
QStandardItem* child2 = new QStandardItem("Child 2");
rootNode->appendRow(child1);
rootNode->appendRow(child2);
model.appendRow(rootNode);
// 设置数据模型
columnView.setModel(&model);
// 显示 QColumnView
columnView.show();
return app.exec();
}