获取已安装的应用程序数据问题
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));
}
,但它不工作,该应用程序崩溃。
假设你正在使用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
的名称更改为更具体的名称。
但矢量数据在0列? 这只是一个小例子。然而,我想要的是从注册表中获取所有应用程序数据,并将数据写入'QTreeWidgetItem'('QTreeWidget'),所以我决定使用'QVector',因为我无法在右列中维护正确的数据。你能帮我吗? – Cobra91151
我已更新主帖子。我想要在所有5列中使用矢量在我的主文章中显示图像。谢谢。 – Cobra91151
@ Cobra91151我看不到图像。修改矢量不会改变树形显示。相反,您可以将所有'newItem'保存到'vector'并直接修改它们,或者您可以执行'std :: map
然后不要创建'vector.count()''QTreeWidgetItem's。结束为错字。 – LogicStuff
@LogicStuff 我改变了主要帖子。谢谢。如果不使用'vector.count()',那么如何迭代vector? – Cobra91151
@ Cobra91151回答你的评论问题:你可以使用QVectorIterator(http://doc.qt.io/qt-5/qvectoriterator.html#QVectorIterator)。至于原始问题,你可以指定什么'父母',你是什么意思,它返回,但不是全部(只有5)'? – lpares12