㈠ linux系统中一个QT应用程序的脚本,请大神解读一下,多谢了!
. /bin/ts-device 执行一个当前目录下,bin下的脚本ts-device
======== 这一段是在赋予各种全局变量 ======================
export TSLIB_PLUGINDIR=/usr/local/lib/ts
export TSLIB_CALIBFILE=/etc/pointercal
export LD_LIBRARY_PATH=/usr/local/lib
export PATH=/bin:/sbin:/usr/bin/:/usr/sbin:/usr/local/bin
export QWS_DISPLAY=:1
TS_INFO_FILE=/sys/devices/virtual/input/input0/uevent
================== 如果$TS_INFO_FILE存在,并且过滤TouchScreen有值=========
if [ -e $TS_INFO_FILE -a "/bin/grep -q TouchScreen < $TS_INFO_FILE" ]; then
================ 就赋予另外一个全局变量 ==================================
export QWS_MOUSE_PROTO="Tslib:$TSLIB_TSDEVICE MouseMan:/dev/input/mice"
===========如果/etc/pointercal文件为空文件,就删除,并且执行ts_calibrate=======
if [ ! -s /etc/pointercal ] ; then
rm /etc/pointercal
/usr/local/bin/ts_calibrate
fi
==============这个else 是根据上面那个if来的,赋值变量====================
else
export QWS_MOUSE_PROTO="MouseMan:/dev/input/mice"
fi
===============删除TS_INFO_FILE变量===================
unset TS_INFO_FILE
==============赋值全局变量===========================
export QWS_KEYBOARD=TTY:/dev/tty1
㈡ linux下执行qt程序怎么编译运行
1、在Linux下的命令行编辑程序:
[root@localhost root]# mkdir hello
//mkdir命令创建一个hello目录
[root@localhost root]# cd hello
//cd命令切换到刚才创建的hello目录
[root@localhost hello]# vi main.cpp
//在hello目录中用vi创建一个main.cpp文件 将下面的代码输入到main.cpp文件中
#include <QApplication>
#include <QLabel>
int main(int argc,char *argv[])
{
QApplication app(argc,argv);
QLabel *label = new QLabel(“Hello Qt”);
Label->show();
return app.exec();
}
2、然后在命令行编译程序:
[root@localhost hello]# qmake –project
//执行qmake –project,因为目录是hello,因此在hello目录下生成一个与平台无关的项目文件hello.pro,
[root@localhost hello]# qmake hello.pro
//执行qmake hello.pro项目文件后,在hello目录下生成一个与平台有关的Makefile文件。
[root@localhost hello]# make
//执行make进行编译源代码,并生成main.o目标文件及hello执行文件。
[root@localhost hello]# ./hello
//执行hello,就会弹出Hello Qt窗口,到此说明成功了。
㈢ QTP远程执行脚本报错"Permission denied"
不明白哎,网上看别人问的也没有个最终结果。
再检查一下前面的语句有没有问题,是否符合VBS的要求。
㈣ 如何在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,播放器也弹出来了。
㈤ linux下面使用root运行QTcreator
非root:
root:
㈥ Qt Creator怎么运行需要root权限的程序
没办法运行的,这是手机的系统禁止了你的权限的运行,所以要先让用户获取手机系统的最高权限,不然是不能运行需要权限的程序的。可以使用电脑版的应用宝对手机进行root,它是专门root手机的工具,操作也很简单,将手机连接电脑,打开软件,匹配手机的型号,点击里面的一键root的工具就可以。
㈦ qt软件无法用脚本运行
首先考虑第三方库没有配置好,如果用的库是动态库,运行时要把相应库的dll放在程序运行目录下。如果不确定缺什么库,转到运行目录下直接点击试试能不能运行,将相应库补齐。其次就是看程序有没有段错误,查看数组有没有越界等。
㈧ Linux中qtcreator root下无法输入中文
打开
qtcreator.sh
这个脚本吧,环境都自动配置好的,一般都能打开,不行再看。
㈨ linux发布qt程序怎么这么复杂
1、首先创建根目录,再将Qt编译后的可执行文件放在目录上。
2、其次目录下创建一个脚本文件,可以给其可执行权限命令为,执行脚本文件。
3、最后继续执行可执行文件会出现错误,将文件夹放到没有Qt环境的linux系统下也可以正常运行程序了。