新增.h文件
This commit is contained in:
		
							parent
							
								
									cbb7510d99
								
							
						
					
					
						commit
						fed4a8edef
					
				
							
								
								
									
										34
									
								
								aptpkginfo.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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
									
								
							
							
						
						
									
										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 += \
 | 
					SOURCES += \
 | 
				
			||||||
    aboutwindow.cpp \
 | 
					    aboutwindow.cpp \
 | 
				
			||||||
 | 
					    aptpkginfo.cpp \
 | 
				
			||||||
    kernelinformation.cpp \
 | 
					    kernelinformation.cpp \
 | 
				
			||||||
    kernelinstaller.cpp \
 | 
					    kernelinstaller.cpp \
 | 
				
			||||||
    main.cpp \
 | 
					    main.cpp \
 | 
				
			||||||
@ -17,6 +18,7 @@ SOURCES += \
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
HEADERS += \
 | 
					HEADERS += \
 | 
				
			||||||
    aboutwindow.h \
 | 
					    aboutwindow.h \
 | 
				
			||||||
 | 
					    aptpkginfo.h \
 | 
				
			||||||
    kernelinformation.h \
 | 
					    kernelinformation.h \
 | 
				
			||||||
    kernelinstaller.h \
 | 
					    kernelinstaller.h \
 | 
				
			||||||
    mainwindow.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()
 | 
					void KernelInformation::LoadInfo()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    // 从 apt 获取信息
 | 
					    // 从 apt 获取信息
 | 
				
			||||||
    qDebug() << this->GetAptPackageList("linux-*");
 | 
					    //QStringList data = this->GetAptPackageList("linux-*");
 | 
				
			||||||
 | 
					    /*for(QString i: data) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }*/
 | 
				
			||||||
    // 从 Github 拉取信息
 | 
					    // 从 Github 拉取信息
 | 
				
			||||||
    QUrl url(this->url);
 | 
					    QUrl url(this->url);
 | 
				
			||||||
    QUrlQuery query;
 | 
					    QUrlQuery query;
 | 
				
			||||||
 | 
				
			|||||||
@ -47,8 +47,7 @@ private:
 | 
				
			|||||||
    QString url = "http://info.kernel.gxde.gfdgdxi.top/information.json";
 | 
					    QString url = "http://info.kernel.gxde.gfdgdxi.top/information.json";
 | 
				
			||||||
    QJsonArray listData;
 | 
					    QJsonArray listData;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    QStringList GetAptPackageList(QString name);
 | 
					
 | 
				
			||||||
    QByteArray GetCommandResult(QString command, QStringList argv, QProcessEnvironment env = QProcessEnvironment::systemEnvironment());
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif // KERNELINFORMATION_H
 | 
					#endif // KERNELINFORMATION_H
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user