簡體   English   中英

在Qt4中使用Bash變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM