struct AppsData {
QList<QIcon> icons;
QStringList name;
QStringList version;
QStringList publisher;
QStringList installLocation;
QStringList uninstallLocation;
};
void Test::setAppData(QList<QIcon> icons, QStringList names, QStringList versions, QStringList publishers, QStringList installLocations, QStringList uninstallLocations)
{
AppsData appsData;
appsData.icons = icons;
appsData.name = names;
appsData.version = versions;
appsData.publisher = publishers;
appsData.installLocation = installLocations;
appsData.uninstallLocation = uninstallLocations;
QVector<AppsData> dataVector;
dataVector.push_back(appsData);
}
我想在适当的列中显示所有应用数据。
此外,我试图在没有载体的情况下完成它:
for (int i = 0; i < uninstallLocations.count(); i++) {
allApplicationsItem = new QTreeWidgetItem(allApplications);
allApplicationsItem->setText(0, names.at(i));
allApplicationsItem->setText(1, versions.at(i));
allApplicationsItem->setText(2, publishers.at(i));
allApplicationsItem->setText(3, installLocations.at(i));
allApplicationsItem->setText(4, uninstallLocations.at(i));
}
但它不起作用,应用程序崩溃。
答案 0 :(得分:-1)
假设您使用的是Qt5:
创建了QTreeWidget
并创建了矢量后,您应该对其元素进行迭代,并为每个元素创建一个新的QTreeWidgetItem
,这样您就可以:
QTreeWidget *treeWidget = new QTreeWidget(this);
treeWidget->setCoulmnCount(1);
for(int i = 0; i < vector.count(); i++) {
QTreeWidgetItem *newItem = new QTreeWidgetItem(treeWidget);
newItem->setText(0, vector.value(i)); // 0 to display it at column 0
}
如您所见,首先您需要创建QTreeWidget
,然后将每个子项添加为QTreeWidgetItem
。
顺便说一下,您应该考虑将变量vector
的名称更改为更具体的名称。