2012-03-12 13 views
0

.shファイルからいくつかの変数を読み込み、それらを配列に渡したいと思います。変数は環境変数ではありません。言い換えれば、私はそれらを手で設定します。 これらの変数は途中でグローバルに使用されます。Qt4でBash変数を使用する

これを使って、QListWidgetのコマンド、アイコン、および名前リストを設定します。 アイテムを選択してボタンをクリックすると、コマンドが実行され、結果がQTextEditに表示されます。

--> You can see the code here. <--

がどのように私はこれを達成することができ、より良い解決策はありますか? Dialog.h、ダイアログ:ある最初のファイルで

イム申し訳ありませんが、英語は私の母国語で説明するのはとてもその難しいことではありません...


EDIT。 CPPとDialog.ui

次に機能が含まれているファイル: Query.hとQuery.cpp

少なくともスクリプトWIC例えば、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 ... 

その後、私はより多くのprecicelyそれを説明する方法が分からないので、私は今、その明確に願っています

QVector<QString> vCmdList; 
for (int i = 0; i < vCmdList.size(); i++) 
{ 
    vCmdList[i] = CmdList[i]; 
} 

ようQuery.cppの私の機能にいくつかのループを使用する必要があります。あなたの忍耐のため

感謝^^

+0

あなたはあなたが持っているものと期待するものの小さな例を挙げることができますか? –

+0

リンクをクリックすると、変数/配列が必要な機能が表示されます。 関数の上にあるC++/Qt配列を変更して、basharraysを読み込んで、その内容でC++配列を塗りつぶすものに変更しないでください。私はリンクに表示されている機能しか持っていません。だからこれはもっと理論的な質問です... それが助けになるなら、私はpseydoコードを書くことができますか? – yokmp

+0

その質問にリンクするのではなく、関連する部分をコピーするのはなぜですか?現在のところ、私はどの部分が関連しているかは明らかではないと思います。 – ruakh

答えて

1

おそらくbashのアレイよりも、あなたの命令を格納するQSettingsと.iniファイルを使用する方が簡単だろう。例えば

QSettings::childGroups()

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

、あなたがして、コマンドおよびそれぞれの名前のアイコンパスを読み取るために、すべてのコマンド名を反復することができるでしょう。

+0

これはうまくいきます。その単純な解決策は決して考えられませんでした.- ありがとう!今私は私のループを完了しようとします。 – yokmp

+0

これは私の問題を解決します。残っていることは、シェルタのための何らかのラッパーを書くことだけです。ありがとう! – yokmp

関連する問題