C++QT 5.15.2
我想用Qt中的表格控件实现图中的效果
或者其他控件,在实现图中的效果,类似的表格,第一列有可以展开的加号按钮
C++QT 5.15.2
🌈🌈🌈参考通义千问和郭老师的小迷弟雅思莫了-编写提供🌈🌈🌈
您可以参考如下,如果回答的不正确,及时评论区回复我,我会根据你错误描述追加回复,直到您满意为止。
在QT中实现可以展开的表格,本质上是使用的是QTreeView 或者 QTreeWidget 控件,而不是QTableWidget控件。下面给出一个使用QTreeWidget的简单示例,第一列具有可展开的加号按钮,点击加号按钮后会展开显示子项:
#include <QApplication>
#include <QTreeWidget>
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QTreeWidget treeWidget;
treeWidget.setColumnCount(3);
QTreeWidgetItem *rootItem = new QTreeWidgetItem(&treeWidget);
rootItem->setText(0, "Root item");
rootItem->setText(1, "Some data");
rootItem->setText(2, "More data");
QTreeWidgetItem *childItem = new QTreeWidgetItem(rootItem);
childItem->setText(0, "Child item");
childItem->setText(1, "Some data");
childItem->setText(2, "More data");
treeWidget.show();
return app.exec();
}
在这个代码中,创建了一个 rootItem,然后再创建了一个 childItem 并把它和rootItem关联起来。rootItem被添加为 treeWidget 的顶级项,当它被点击时,就可以展开显示其子项 childItem。
如果你需要对这个表格进行更多的定制,或实现更复杂的数据展示,你可能需要利用QTreeView和QAbstractItemModel,建立一个自定义的数据模型。有关自定数据模型的更多内容,可以参考Qt的官方文档。
注意,上述代码是C++编写的Qt程序,如果你正在使用Python的PyQt库,代码会有所不同,但思路是一样的。