我有一个c ++ qt项目,我有两个窗口。其中一个名为MainWindow
,另一个名为StartingWindow
。
当MainWindow
启动时,我正在运行QProcess
来运行pacman -Q
以获取已安装软件包的列表。然后使用QByteArray
,我获取stdout
,然后将其转换为QStringList
以生成QSortFilterProxyModel
并将其设置为QListView
} MainWindow
。
这种方法很好用。但是,如果我从MainWindow
开始StartingWindow
,则表现得很奇怪。应该显示的应用程序列表不完整。从一开始就缺少大约100个应用程序。
非常感谢任何帮助。如果您是我的代码的任何部分,请告诉我。
启动QProcess的代码:
QStringList args;
args << "-Q";
commandProcess.start("pacman",args);
获取该标准的代码
QStringList applist;
model=new QStringListModel(this);
proxyModel=new QSortFilterProxyModel(this);
proxyModel->setSourceModel(model);
QByteArray cmdoutput=commandProcess.readAllStandardOutput();
QString txtoutput=cmdoutput;
applist=txtoutput.split("\n");
model->setStringList(applist);
QStringList arguments=commandProcess.arguments();
QString args=arguments.join("");
ui->installedApps->setModel(proxyModel);