在Qt4中使用Bash变量
Using Bash Variables in Qt4
我想从.sh文件中读取一些变量,并将它们传递给数组(可能更好的是向量,因为我不知道长度?)。这些变量不是环境变量,换句话说,我会按手设置它们。顺便说一下,这些变量将是全局使用的。
之后,我使用它们为QListWidget设置命令、图标和名称列表。我选择一个项目并单击一个按钮,它会执行命令并在QTextEdit中显示结果。
-->你可以在这里看到代码<--
我如何才能做到这一点,有更好的解决方案吗?
编辑:
对不起,英语不是我的母语,所以很难解释。。。
最初的文件是:Dialog.h、Dialog.cpp和Dialog.ui
然后是包含以下功能的文件:Query.h和Query.cpp
至少是我调用variables.sh的Script。它包含这样的东西:
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,对吗?
Query函数是通过对话框Ui中的按钮调用的。
现在我必须从变量.h中读取变量(这应该在程序启动时完成…)
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()
,您将能够迭代所有命令名称,然后读取命令和每个名称的图标路径。
相关文章:
- 如何创建一个CMake变量,除非显式重写,否则使用默认值
- 将成员变量添加到共享库中的类中,不会破坏二进制兼容性吗
- 将数组的地址分配给变量并删除
- 为"adjacent"变量赋值时出现问题
- enum是C++中的宏变量还是整数变量
- 在全局变量中保存类的实例以重新创建类(创建"backup")
- 将字符串变量从 bash 脚本传递到根宏
- 如何将C++输出捕获到 Bash 变量?
- 如何将我的 cli 信息(变量等)共享到子进程,这是一个 bash shell 脚本
- 将 C++ 程序的输出发送到变量 bash
- 如何使用CMakeLists.txt为我的可执行文件设置bash中的环境变量
- 如何将 c ++ 变量的值传递给 hadoop HDFS 的 bash 系统命令?
- 在 C 程序中执行 bash 以导出环境变量
- BASH数组和C++中变量的变量
- 如何将C++程序的输出用作 Bash 脚本中的变量
- 生成文件:在全局变量初始化之前通过"make all"命令运行 bash 脚本
- 在Qt4中使用Bash变量
- 将环境变量传递给已启动的进程bash脚本
- 将bash命令的终端响应读取到c++变量中
- 如何在C++中使用具有文件名的变量(如bash中的$1、$2)