当前位置:首页 » 编程软件 » qtshell脚本

qtshell脚本

发布时间: 2023-05-03 09:39:24

① 如何在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中如何模拟shell里的echo命令

echo是bash的内建指令,你使用终端启动的是bash这个应用程序,如果想执行唯庆这个命令,指卜握你应该创建bash进程。弊帆

③ Qt怎样调用并传参给shell脚本

方法/步骤 执行“nano test.sh”创建一个新的shell脚本。 脚本test.sh的内容如下: #!/bin/sh name=$1 echo "the ${name} are great man!" 给新创建的test.sh的脚本赋可执行权限,命令为“chmod 755 test.sh”。 执行'./test.sh "xiao wang"'命令,...

④ 调用了shell脚本的Qt程序如何打包成.deb文件

大致过程:

* 把源码包解压缩到某个目录;

* 在源码目录内创建debian化目录 (./debian).

* 修改./debian目录内的文件,如包维护者的详细信息、包描述,等等;

* 在本机编译源代码;

* 在本机生成.deb包;


需要用到的工具:

* dh_make(dh-make包的一部分)——用于自动创建./debian目录和其他用于创建.deb包的骨架模板文件;

* make(Gnu make)——构建过程中要用到的工具;

* debchange/dch(devscripts包的一部分)——用于编辑包的版本号;

* debuild(devscripts包的一部分)——运行构建过程,包括编译连接,以及生成deb包;


可以参考

http://wenku..com/view/6f7e3665f5335a8102d22051.html

⑤ qtscript shell ;tinypy shell ;spidermonkey shell 这三个词是什么意思

qtscript是QT采用的脚本语言,遵循ECMAScript标准,即和JavaScript遵循同一销宽标准,tinypy是python的一个子集,spidermonkey是mozilla基金会开发的浏览器灶棚firefox采用的JavaScript引擎,shell就是外壳的意思,就是可以输入命令,亏辩亮然后显示执行结果的小程序,windows下的命令行工具就相当于一个shell

⑥ linux qt怎么编写shell

打开QT CREATOR 点击文件--新建文件或工程 选择左边的QT,右边的QT设计师界歼前罩面类,点悔配击选择 选择界面模板氏闹 命名类名,定义路径

⑦ 请问Qt软件在linux系统中如何打包移植

一、准备
busybox 1.14.1
qt-embedded-linux-opensource-src-4.5.1
tslib 1.4
gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72)
构建一个新的根文件系统目录,路径为
/root/rootfs

二、具体步骤:

1、编译安装busybox
在官网下载最新版。可以参考如下几处要修改的地方:
Busybox Settings ---> Build Options ---> (arm-linux-)Cross Compiler prefix
Busybox Settings ---> Installation Options --->[]Dont't use /usr
Busybox Settings ---> Installation Options --->(/root/rootfs) BusyBox installation prefix
Busybox Settings --->Busybox Library Tuning --->[*] Fancy Shell prompts
输入如下命令,编译并安装。
# make;make install

2、编译安装tslib
# ./autogen.sh
# ./configure -prefix=/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/ -host=arm-linux ac_cv_func_malloc_0_nonnull=yes
# make;make install

安装目录指明为 /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/
主要是为了在编译QTE时,不用指定tslib的头文件和库文件,方便以后程序开发。

注意:在做这一步前,需要做一个目录链接
在/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/usr/目录下
# ln -s ../../usr/include ./

3、编译安装QTE
1)、最基本的配置
# ./configure -prefix /usr -embedded arm -xplatform qws/linux-arm-g++ -depths 16 -qt-mouse-tslib
-prefix /usr 使用这个配置,编译后的QTE库文件即可放在目标文件系统的/usr/lib下,而不是默认/usr/local/Trolltech/QtEmbedded-4.5.1 这个很深的目录
2)、编译
# make
# cp lib/* /root/rootfs/usr/lib -rd 将QTE库文件拷贝到根文件系统的目录
# cp plugins /root/rootfs/usr -rd 将QTE插件目录拷贝到根文件系统的目录

4、根文件系统的设置
1)、这时/root/rootfs/usr下应该有 bin etc include lib sbin目录
tslib生成的etc目录,包含一个tslib的配置文件 nf,编辑此文件,去掉mole_raw input前的注释
# mv etc ../ 移动到rootfs的根目录

2)、进行一次清理操作
#arm-linux-strip lib/*.so
#arm-linux-strip usr/lib/*.so

3)、编辑etc/profile,添加以下内容
export QWS_MOUSE_PROTO=Tslib:/dev/event0
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
export TSLIB_TSDEVICE=/dev/event0
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/nf
export TSLIB_PLUGINDIR=/usr/lib/ts

最后,通过mkyaffs2image 制作镜像,烧写镜像,启动ts_calibrate校验触屏即可。

⑧ qt中执行的shell脚本需要root权限,怎么办

root方法:
1、打开手机设置--开发者选项--usb调试功能设置。
2、一键root这样的Kingroot、刷机精灵等设置下手机就好了。
3、顺畅的让手机上获取到最高的root权限了。
通过这样的方式就让手机上授权获取到手机上比较好了。

⑨ 如何利用shell 执行qt程序

#如果是在linux下面可以这样
#设置Qt环境变量
exportQT_DIR=/opt/qt5
exportQT_LIB_DIR=$QT_DIR/lib
LD_LIBRARY_PATH=$QT_LIB_DIR/:$LD_LIBRARY_PATH

#现在可以瞎轿高运行Qt程序了,&是让其后台运行,不占用终端#
#相对路径运行qt4帆谨arm的列子
./qt_demo1-qws&
#绝对路径运磨尺行Qt程序
/opt/qt_demo&
#不后台运行
/opt/qt_demo

⑩ 在ubuntu使用Qt完成一个单击按钮调用shell脚本并将脚本运行结果显示到界面中

使用qprocess.
Process = new QProcess();

connect(pppProcess, SIGNAL(readyRead()), this, SLOT(read()));
connect(pppProcess, SIGNAL(finished(int)), this, SLOT(finished()));
pppProcess->start(tr("shell cmd"));

在read函数中
str += Process->readAll();

在finished函数中显示str

热点内容
oracle测试sql 发布:2025-07-08 03:16:54 浏览:973
php壁纸源码 发布:2025-07-08 03:04:26 浏览:320
android应用层 发布:2025-07-08 02:42:32 浏览:301
大唐存储销量 发布:2025-07-08 02:41:11 浏览:582
脚本怎么打开 发布:2025-07-08 02:41:06 浏览:822
贵州电信iPtv升级服务器地址 发布:2025-07-08 02:38:48 浏览:412
电脑怎么链接本地服务器 发布:2025-07-08 02:34:22 浏览:147
android调试webview 发布:2025-07-08 02:26:28 浏览:358
压缩袋鞋子 发布:2025-07-08 02:21:30 浏览:752
为什么安卓打吃鸡感觉有延迟 发布:2025-07-08 02:09:32 浏览:168