导航:首页 > 软件问题 > 如何通过qt启动外部软件

如何通过qt启动外部软件

发布时间:2022-08-26 09:39:43

‘壹’ Qt程序中,怎么启动外部的一个exe程序,并且把本程序关闭

QProcess::startDetached启动外部程序,qApp->quit关闭当前程序

‘贰’ 如何通过Qt界面启动MPI多进程并行,并将界面参数传递给每一个进程

MPI必须是以服务的形式运行的,不能加到自己的代码中。 这涉及到进程间通信,但是可以采用这样的三种形式:1,QT应用中启动一个MPI的exe进程,将参数作为启动参数传递给这个进程。2,可以在QT应用中将参数写到一个外部文件中,MPI进程就不断监听这个文件。文件有内容,MPI程序就开始执行。3,QT应用MPI进程,一个作为TCP的服务器,一个作为TCP的客户端。用套接字进行通信。

如果你是在linux上,可以参考很多IPC机制(进程间通信机制)。

‘叁’ Qt Android 怎么启动其他Android程序

要知道其他应用程序的具体包名以及你要启动的界面名称,例如com.example.usbupdateminipcr", "com.example.usbupdateminipcr.MainActivity

‘肆’ 如何在QT下执行shell或外部程序

1、设计gui图形界面,创建一button,并在clicked下添加代码

第一种方法(50行)是调用linux C函数库中的system(const char *string);

第二种方法(51行)和第三种方法(53 54行)是调QT里的函数;

需要说明的时,上面三种方法都是可以的,但前两种方法会阻塞进程,直到smplayer程序结束,而第三种方法则不会阻塞进程,可以多任务运行。

还有,我们知道qt在运行的时候,要启动qws(qtwindows server),如果用前面两种方法,则smplayer运行的时候,要新开启一个qws,否则不能运行;而用第三种方法,则不需要再开启qws,它和HelloQt4共用一个qws,这样,在一个窗口里可以看到这两个程序。

2、新建运行脚本,用来启动smplayer播放器

在上一步中,qt程序执行了
/opt/run_smplayer脚本,但这个脚本是不存在的,我们要新建它,打开开发板的/opt目录,新建一个run_smplayer文件,添加如下内容

#!/bin/sh

#测试用
#cd /opt/
#rm qt_create/
-rf
#sleep 3
#mkdir qt_create
#cd qt_create
#mkdir qt_create1
#cd qt_create1
#mkdir qt_create2
#cd qt_create2
#mkdir ok

#直接调用mplayer播放sdcard里的gq.avi文件
#cd /usr/local/smplayer/bin
#./mplayer /sdcard/gq.avi

#启动友善的smplayer
cd /usr/local/smplayer/bin
./smplayer

3、修改smplayer文件

在友善的根文件系统中,/user/lical/smplayer/bin目录中的smplayer脚本是有问题的,如果直接运行它,会出现鼠标和触摸屏
不能使用的情况,我们要将/bin目录下的smplayer脚本复制过来,并将最后两行中的qws去掉。(前面提到过的,我们要多任务运行,不需要再开一
个qws)

export HOME=/root
cd /usr/local/smplayer/
exe__c ./smplayer #-qws 1>/dev/null
2>/dev/null
// 此处有屏蔽字,真实没有下划线
#hotplug

4、修改rcS文件,使之开机就运行HelloQt4i程序
rcS文件如下:
#!
/bin/sh

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel

#
# Trap CTRL-C &c
only in
this shell so we
can interrupt subprocesses.
#
trap ":" INT QUIT TSTP
/bin/hostname Crt

[ -e /proc/1 ]
||
/bin/mount -n -t proc none
/proc
[ -e /sys/class ] ||
/bin/mount -n -t sysfs none /sys
[ -e /dev/tty ]
||
/bin/mount
-t ramfs
none /dev
/bin/mount -n -t usbfs none
/proc/bus/usb

echo /sbin/mdev >
/proc/sys/kernel/hotplug
/sbin/mdev -s
/bin/hotplug
# mounting file system specified in
/etc/fstab
mkdir -p /dev/pts
mkdir -p /dev/shm
/bin/mount -n -t devpts none
/dev/pts -o mode=0622
/bin/mount -n -t tmpfs tmpfs /dev/shm
/bin/mount
-n
-t ramfs
none /tmp
/bin/mount -n -t ramfs none
/var
mkdir -p /var/empty
mkdir -p /var/log
mkdir -p /var/lock
mkdir -p /var/run
mkdir -p /var/tmp

/sbin/hwclock -s

syslogd
/etc/rc.d/init.d/netd start
echo "
"
>
/dev/tty1
echo "Starting networking..."
>
/dev/tty1
sleep 1
/etc/rc.d/init.d/httpd start
echo "
"
>
/dev/tty1
echo "Starting web server..."
>
/dev/tty1
sleep 1
/etc/rc.d/init.d/leds start
echo "
"
>
/dev/tty1
echo "Starting leds service..."
>
/dev/tty1
echo "
"
sleep 1

echo "
"
>
/dev/tty1
/etc/rc.d/init.d/alsaconf start
echo "Loading sound card config..."
>
/dev/tty1
echo "
"
/sbin/ifconfig lo 127.0.0.1
/etc/init.d/ifconfig-eth0

#/bin/qt4 &
#echo "
"
>
/dev/tty1
#echo "Starting Qt4 Applications, please
waiting..."
>
/dev/tty1

#/bin/smplayer &
#echo "
"
>
/dev/tty1
#echo "Starting smplayer Applications, please
waiting..."
>
/dev/tty1

/bin/hello_qt4app &
echo "
"
>
/dev/tty1
echo "Starting
hello_qt4 Applications, please
waiting..."
>
/dev/tty1

hello_qt4app脚本如下:
#!/bin/sh

rm /root/.config/
-rf;
rm /root/.mplayer/
-rf;

if [ -e /etc/friendlyarm-ts-input.conf ] ; then
. /etc/friendlyarm-ts-input.conf
fi
true
${TSLIB_TSDEVICE:=/dev/touchscreen}

TSLIB_CONFFILE=/etc/ts.conf

export TSLIB_TSDEVICE
export TSLIB_CONFFILE

export TSLIB_PLUGINDIR=/usr/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal

export QWS_DISPLAY=:1
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin

if [ -c /dev/touchscreen ]; then
export
QWS_MOUSE_PROTO="Tslib:${TSLIB_TSDEVICE}
MouseMan:/dev/input/mice"
if [
-e
/etc/pointercal -a !
-s
/etc/pointercal ] ; then

rm
/etc/pointercal
fi
else
export
QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
>/etc/pointercal
fi

export QWS_KEYBOARD=TTY:/dev/tty1

export HOME=/root

cd /opt
./hello_qt4
-qws
1>/dev/null
2>/dev/null
hotplug

然后,重启开发板,hello_qt4程序运行了,再点button,播放器也弹出来了。

‘伍’ Qt如何打开和结束外部程序

可以查查操作系统的api,有这种api能实现运行一个新的进程运行其他程序!然后记住pid,当你想关闭的时候这个pid发送信号!那个进程收到信号以后,结束自己就可以了!

‘陆’ qt调用外部exe程序并且将exe程序一起打包

你试试作为一个资源来运行看行不行,或者将exe作为一个资源,然后运行时以二进制的形式读取,再将读取到的二进制信息写入到临时文件中,运行临时文件。或者直接将资源中得exe保存到系统临时文件夹中进行运行。
只是个思路,没试过,你试试

‘柒’ Qt如何调用外部可执行文件

了解一下 QProcess 的文档。

‘捌’ qt中如何运行外部程序,QProcess类

QT中使用QProcess启用外部程序 启用外部程序,并可传参,默认第一个参数是exe路径!启动外部程序的方法有以下两种: 1、start()void QProcess::start ( const QString & program, const QStringList & arguments, OpenMode mode = ReadWrite ) Starts the program program in a new process, passing the command line arguments in arguments. The OpenMode is set to mode. QProcess will immediately enter the Starting state. If the process starts successfully,QProcess will emit started(); otherwise, error() will be emitted.Note that arguments that contain spaces are not passed to the process as separate arguments.Windows: Arguments that contain spaces are wrapped in quotes.Note: Processes are started asynchronously, which means the started() and error() signals may be delayed. Call waitForStarted() to make sure the process has started (or has failed to start) and those signals have been emitted.See also pid(), started(), and waitForStarted(). 2、使用QProcess::execute(), 不过使用此方法时程序会最阻塞直到此方法执行的程序结束后返回,这时候可使用QProcess和QThread这两个类结合使用的方法来处理,以防止在主 线程中调用而导致阻塞的情况 先从QThread继承一个类,重新实现run()函数: 答:1、使用QProcess::startDetached()方法,启动外部程序后立即返回; 2、使用QProcess::execute(),不过使用此方法时程序会最阻塞直到此方法执行的程序结束后返回,这时候可使用QProcess和QThread这两个类结合使用的方法来处理,以防止在主线程中调用而导致阻塞的情况 先从QThread继承一个类,重新实现run()函数:Quote:class MyThread : public QThread{public:void run(); };void MyThread::run(){QProcess::execute("notepad.exe");

阅读全文

与如何通过qt启动外部软件相关的资料

热点内容
电脑上怎么下载班智达的软件 浏览:1157
无痕迹消除图片软件 浏览:722
免费小票软件 浏览:954
华为在哪里设置软件停止运行 浏览:961
用电脑键盘调节声音大小 浏览:1258
自动刷软件赚钱 浏览:1261
古装连续剧免费版 浏览:1414
工免费漫画 浏览:1144
手机软件专门储存文件 浏览:1509
uos如何用命令安装软件 浏览:1316
有线耳机插电脑麦克风 浏览:647
侏罗纪世界3在线观看完整免费 浏览:995
单个软件怎么设置名称 浏览:719
凤凰网电脑版下载视频怎么下载视频怎么下载 浏览:1385
明白之后如何免费获得无人机 浏览:831
如何解禁软件菜单 浏览:855
副路由器连接电脑视频 浏览:1351
内置wifi电视如何装软件 浏览:1107
手机换零免费雪碧 浏览:1589
国行苹果如何下载美版软件 浏览:1213