新增.h文件

This commit is contained in:
gfdgd xi 2024-05-06 22:56:17 +08:00
parent cbb7510d99
commit fed4a8edef
5 changed files with 58 additions and 31 deletions

34
aptpkginfo.cpp Normal file

@ -0,0 +1,34 @@
#include "aptpkginfo.h"
AptPkgInfo::AptPkgInfo()
{
}
QStringList AptPkgInfo::GetAptPackageList(QString name)
{
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("LANG", "en");
QString data = GetCommandResult("apt", QStringList() << "list" << name, env);
QStringList lineData = data.split("\n");
QStringList result = {};
for(QString i: lineData) {
if(i.contains("Listing...")) {
continue;
}
result.append(i.split("/").at(0));
}
return result;
}
QByteArray AptPkgInfo::GetCommandResult(QString command, QStringList argv, QProcessEnvironment env)
{
QProcess process;
process.setProcessEnvironment(env);
process.start(command, argv);
process.waitForStarted();
process.waitForFinished();
QByteArray result = process.readAllStandardOutput();
process.close();
return result;
}

17
aptpkginfo.h Normal file

@ -0,0 +1,17 @@
#ifndef APTPKGINFO_H
#define APTPKGINFO_H
#include <QObject>
#include <QProcess>
class AptPkgInfo: QObject
{
Q_OBJECT
public:
AptPkgInfo(QString pkgName);
QStringList GetAptPackageList(QString name);
QByteArray GetCommandResult(QString command, QStringList argv, QProcessEnvironment env = QProcessEnvironment::systemEnvironment());
};
#endif // APTPKGINFO_H

@ -10,6 +10,7 @@ CONFIG += c++17
SOURCES += \
aboutwindow.cpp \
aptpkginfo.cpp \
kernelinformation.cpp \
kernelinstaller.cpp \
main.cpp \
@ -17,6 +18,7 @@ SOURCES += \
HEADERS += \
aboutwindow.h \
aptpkginfo.h \
kernelinformation.h \
kernelinstaller.h \
mainwindow.h

@ -7,38 +7,13 @@ KernelInformation::KernelInformation()
}
QStringList KernelInformation::GetAptPackageList(QString name)
{
QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
env.insert("LANG", "en");
QString data = GetCommandResult("apt", QStringList() << "list" << name, env);
QStringList lineData = data.split("\n");
QStringList result = {};
for(QString i: lineData) {
if(i.contains("Listing...")) {
continue;
}
result.append(i.split("/").at(0));
}
return result;
}
QByteArray KernelInformation::GetCommandResult(QString command, QStringList argv, QProcessEnvironment env)
{
QProcess process;
process.setProcessEnvironment(env);
process.start(command, argv);
process.waitForStarted();
process.waitForFinished();
QByteArray result = process.readAllStandardOutput();
process.close();
return result;
}
void KernelInformation::LoadInfo()
{
// 从 apt 获取信息
qDebug() << this->GetAptPackageList("linux-*");
//QStringList data = this->GetAptPackageList("linux-*");
/*for(QString i: data) {
}*/
// 从 Github 拉取信息
QUrl url(this->url);
QUrlQuery query;

@ -47,8 +47,7 @@ private:
QString url = "http://info.kernel.gxde.gfdgdxi.top/information.json";
QJsonArray listData;
QStringList GetAptPackageList(QString name);
QByteArray GetCommandResult(QString command, QStringList argv, QProcessEnvironment env = QProcessEnvironment::systemEnvironment());
};
#endif // KERNELINFORMATION_H