[英]Using Bash Variables in Qt4
我想從.sh文件中讀取一些變量,然后將它們傳遞給數組(也許是更好的向量,因為我不知道長度是多少?)。 變量不是環境變量,換句話說,我將每手設置它們。 這些變量將被全局使用。
之后,我使用它們為QListWidget設置命令,圖標和名稱列表。 我選擇一個項目並單擊一個按鈕,它會執行命令並在QTextEdit中顯示結果。
我怎樣才能做到這一點,有更好的解決方案嗎?
編輯:
對不起,英語不是我的母語,所以很難解釋...
首先,這些文件是:Dialog.h,Dialog.cpp和Dialog.ui
然后包含功能的文件:Query.h和Query.cpp
至少在腳本中,我稱為variables.sh。 它包含如下內容:
CmdList=("kcmshell4 --list|grep -q kcm_grub2",
"kcmshell4 --list|grep -q kcm_networkmanagement",
"which pastebunz",
"[ -z $ink3_ver ]")
NameList=("kcm_grub2",
"kcm_networkmanagement",
"pastebunz",
"Shellmenu")
IconList=(":/icons/icons/GNU.png",
":/icons/icons/networkmanager.png",
":/icons/icons/edit-paste.png",
":/icons/icons/menu.png")
我不知道這些的長度或內容。 所以我應該使用QVector吧?
通過對話框Ui中的按鈕調用查詢功能。
現在我必須從variables.h中讀取變量(這應該在programstart上完成)。
for (int i = 0; i < ${#$cmdList[*]}; i++) // where '${#$cmdList[*]}' represents the
{ some magical stuff; } //legth or the $CmdList array written in bash ...
然后我必須在Query.cpp中的函數中使用一些循環,例如
QVector<QString> vCmdList;
for (int i = 0; i < vCmdList.size(); i++)
{
vCmdList[i] = CmdList[i];
}
我希望現在可以更清楚地了解它,因為我不知道如何更准確地解釋它。
多謝您的耐心配合^^
使用QSettings
和.ini文件來存儲命令可能比bash數組更容易。
例如:
[kcm_grub2]
command=kcmshell4 --list|grep -q kcm_grub2
icon=:/icons/icons/GNU.png
[kcm_networkmanagement]
command=kcmshell4 --list|grep -q kcm_networkmanagement
icon=:/icons/icons/networkmanager.png
...
使用QSettings::childGroups()
,您可以遍歷所有命令名稱,然后讀取每個名稱的命令和圖標路徑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.