Qt 5.15 安裝地址:
https://download.qt.io/official_releases/online_installers/
安裝文件名:qt-unified-windows-x86-online.exe
此為在線安裝包,安裝的時(shí)候選擇,你要安裝的軟件包,進(jìn)行安裝。
如果下載的安裝包有問題,先下載安裝vs 2017 即可解決。
離線安裝包可以選擇任何的QT版本,安裝的時(shí)候有選項(xiàng),包含LTS和預(yù)覽版本均可下載安裝。
QT最后一個(gè)離線安裝包
https://download.qt.io/official_releases/qt/5.12/5.12.11/
文件名:qt-opensource-windows-x86-5.12.11.exe
導(dǎo)讀
我從事IT運(yùn)維技術(shù)20多年, 尤其是剛開始工作的時(shí)候:前幾年陸續(xù)在十幾家IT系統(tǒng)集成公司工作過,每一家公司技術(shù)服務(wù)標(biāo)準(zhǔn)、IT工程師的個(gè)人習(xí)慣很難幫助客戶企業(yè)建立一套規(guī)劃、系統(tǒng)而全方位的IT系統(tǒng)。
同時(shí)客戶IT需求的多元化,很難有一套統(tǒng)一的行業(yè)標(biāo)準(zhǔn),很多客戶也在糾結(jié):無法判斷IT技術(shù)工程師維護(hù)和管理的效果。只能在出現(xiàn)故障時(shí):技術(shù)工程師處理故障,結(jié)果就是解決了和沒有解決。
下一次更換IT技術(shù)工程師,故障處理風(fēng)格又不同,所以我們很難進(jìn)行有效管理和監(jiān)控,更難討論怎么統(tǒng)一!
近兩年,我就在思考:怎么樣幫助初高級(jí)IT工程師,建立一套規(guī)劃化的IT服務(wù)體系?
例如:我就在想,有一套系統(tǒng),把各種常用軟件集成,IT企業(yè)每一位工程師統(tǒng)一使用集成化的平臺(tái),安裝部署軟件產(chǎn)品和各種外設(shè)。下圖是我定制開發(fā)的界面。我需要做的工作是安裝7-zip這個(gè)軟件
軟件開發(fā)界面
需求分析
1、需要有7-zip安裝包;(程序自動(dòng)判斷:有沒有安裝包,沒有則下載到指定目錄);
2、7-z自動(dòng)加入系統(tǒng)Path目錄,方便命令行方式自動(dòng)解壓IT管理系統(tǒng)的軟件;
3、判斷Windows系統(tǒng)是否安裝有7-zip軟件,如果安裝好了則自動(dòng)打開程序;
實(shí)現(xiàn)方法:
我自學(xué)QT和C++一年多,空閑時(shí)間按照自己的想法和思路去實(shí)現(xiàn)。如上圖:我點(diǎn)擊"軟件"->“壓縮工具”->"7-Zip"軟件,則自動(dòng)安裝該軟件。
QT開發(fā)界面
項(xiàng)目目錄結(jié)構(gòu)
初始實(shí)現(xiàn):QT QSetting 類操作注冊(cè)表讀寫path,將7-zip軟件加入系統(tǒng)環(huán)境、通過QProcess執(zhí)行安裝程序。
setup7_Zip() 函數(shù):
void softHandle::setup7_Zip()
{
QString exeFileName=sourceDir+"commonSoft\\zip_soft\\7z2107-x64.exe";
QProcess process(this);
QSettings *regSet;
if(Is64BitSystem()){
regSet=new QSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\7zFM.exe", QSettings::Registry64Format);
}else{
regSet=new QSettings("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\7zFM.exe", QSettings::Registry32Format);
}
QString addNewPath=regSet->value("Path").toString(); //獲取7-Z安裝位置
if (addNewPath.right(1)=="\\")
{
addNewPath.remove(addNewPath.length()-1,1);
}
qDebug()<<"-----------------"<<addNewPath;
QSettings *regSet2;
if(Is64BitSystem())
{
regSet2=new QSettings("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", QSettings::Registry64Format);
}
else
{
regSet2=new QSettings("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Environment", QSettings::Registry32Format);
}
//將7-zip加入到系統(tǒng)path目錄
QString oldPath=regSet2->value("Path").toString(); //讀出注冊(cè)表原來 Path的值
qDebug()<<"oldPath:"<<oldPath;
QString newPath=QString(oldPath+";%1;").arg(addNewPath); //在毛部追加7-zip的目錄
qDebug()<<"newPath:"<<newPath;
regSet2->setValue("Path", newPath);
regSet->deleteLater();
regSet2->deleteLater();
}
代碼效果
自動(dòng)完成注冊(cè)表環(huán)境變量設(shè)置