QT中点击按钮执行脚本并向脚本传递参数
2017-04-22 14:13
731 查看
这两天在工作遇到要拷贝文件的功能,直接用QFile 的copy()功能拷贝文件速度太慢,所以想到用shell脚本来实现文件copy。需要点击界面上的一个button,执行拷贝文件的脚本,并且将待拷贝文件的文件名 作为参数传递到脚本中。在网上参考了相关的方法,然后实现了这个功能,这里总结一下。
1.点击按钮实现执行脚本功能
在Qt中点击按钮关联到执行脚本,使用QProcess 来完成。
本例中代码如下:
void UpgradeProgressBar::copyFileToDst()
{
QProcess *tpuProcess = new QProcess();
QString commandProgram = "./copyFile.sh"; //commandProgram 这个变量是待执行脚本的完整路径
QStringList args;
args.append(mFileName); //mFileName 是待复制的文件名,作为参数传递给copyFile.sh文件,如果还有其他参数,可以往后加args.append(XX)
tpuProcess->start(commandProgram,args); //启动执行脚本文件
}
2.脚本接收Qt中传递的参数
copyFile.sh文件代码如下:
#! /bin/sh
touch testfile.txt
echo "I have $# parameter!"
echo "First parameter is: $0" >> testfile.txt
echo $0 >> testfile.txt
echo $1 >> testfile.txt
cp $1 /mnt/udisk/
#echo '12345678'| sudo -S cp $1 /mnt/udisk/
echo "Copy file finish!"
其中:
$# 表示传递参数的个数
$0 表示第0个参数,一般为./XX.sh
$1表示第一个参数,这里为mFileName(传递给脚本的文件名)
$2、 $3... 表示./XX.sh跟在后面的参数。
1.点击按钮实现执行脚本功能
在Qt中点击按钮关联到执行脚本,使用QProcess 来完成。
本例中代码如下:
void UpgradeProgressBar::copyFileToDst()
{
QProcess *tpuProcess = new QProcess();
QString commandProgram = "./copyFile.sh"; //commandProgram 这个变量是待执行脚本的完整路径
QStringList args;
args.append(mFileName); //mFileName 是待复制的文件名,作为参数传递给copyFile.sh文件,如果还有其他参数,可以往后加args.append(XX)
tpuProcess->start(commandProgram,args); //启动执行脚本文件
}
2.脚本接收Qt中传递的参数
copyFile.sh文件代码如下:
#! /bin/sh
touch testfile.txt
echo "I have $# parameter!"
echo "First parameter is: $0" >> testfile.txt
echo $0 >> testfile.txt
echo $1 >> testfile.txt
cp $1 /mnt/udisk/
#echo '12345678'| sudo -S cp $1 /mnt/udisk/
echo "Copy file finish!"
其中:
$# 表示传递参数的个数
$0 表示第0个参数,一般为./XX.sh
$1表示第一个参数,这里为mFileName(传递给脚本的文件名)
$2、 $3... 表示./XX.sh跟在后面的参数。
相关文章推荐
- 分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数
- 十七周三次课 2018.02.27分发系统介绍、expect脚本远程登录、expect脚本远程执行命令、expect脚本传递参数
- Javascript 点击按钮 提示确认 确认后跳转网页 可传递参数
- jqgrid如何在一个页面点击按钮后,传递参数到新页面
- SQL*Plus 执行脚本时传递参数(@script_name var1,var2)
- js点击按钮删除一行并传递参数小结1
- 基于jQuery实现的点击编辑按钮时传递参数到弹出层div
- Python小脚本,其中需要连接MySQL数据库,在执行sql命令时需要传递参数
- 分发系统介绍、expect脚本远程执行命令、expect脚本远程传递参数、expect脚本传递参数
- 表格里的某个超链接点击执行的函数参数传递json对象格式的数据
- 分发系统介绍,expect脚本远程登录,expect脚本远程执行命令,expect脚本传递参数
- 分发系统介绍,expect脚本远程登录,远程执行命令,传递参数
- 转换中的 XPathNavigator给脚本执行传递参数
- 分发系统介绍expect脚本远程登录expect脚本远程执行命令 expect脚本传递参数
- 分发系统介绍 expect脚本远程登录 expect脚本远程执行命令 expect脚本传递参数
- Qt中点击按钮如何向槽函数传参数?
- 利用js代码:document.forms[0].approval.value='false',当点击 <input type="image"按钮向表单传递不同的参数。
- shell脚本在执行时,向脚本传递参数
- SQL*Plus 执行脚本时传递参数(@script_name var1,var2)
- 【shell编程】分发系统介绍、expect脚本远程登录、expect脚本远程执行命令和expect脚本传递参数