
#include <Pythonh>
int main()
{
Py_Initialize(); // 初始化
// 将Python工作路径切换到待调用模块所在目录,一定要保证路径名的正确性
string chdir_cmd = string("syspathappend(\'/xxxxxxx/')");
// 加载模块
PyObject moduleName = PyString_FromString("xx"); //模块名,不是文件名
PyObject pModule = PyImport_Import(moduleName);
// 加载函数
PyObject pv = PyObject_GetAttrString(pModule, "xxx");
// 调用函数
PyObject pRet = PyObject_CallObject(pv, xxx);
Py_Finalize();
}
再qt里面包含头文件 , 初始化,引入py文件路劲,导入模块然后就可以执行里面的函数了,如果你想直接执行文件而不需要得到里面的结果直接调用:system("python xxxpy");就好了
在业务开始时,线程自动向每个按钮发送clicked()信号,按钮接收到该信号后,执行该信号,从而模拟人单击按钮,但整个过程按钮不能接收键盘鼠标事件,防止人干扰线程自动模拟按钮的执行。首先想到的是调用按钮的setEnable(false)函数,这样确实可以使按钮不接收键盘鼠标消息了为实现鼠标移上按钮时,光(鼠)标样式发生变化,需要重载public bool eventFilter方法还有另一种设置图标和文字的方法网上还、还、有另一种设置按钮图标的办法QT下执行程序的图标设置还没有一种跨平台的解决方案,这里介绍的时windows平台下的方法。
首先当然要准备一个ico图标文件(假定为exeico),将其复制到工程目录当中(pro文件所在的目录)。
然后在QT Creator中Ctrl+N或 File - New File or Project,选择General中的Text File,名称填写为rc文件(如exeIconrc),在里面只用写一行: 这里arg()里的参数分别用来填充%1和%2处的内容。其中x()和y()分别用来返回鼠标光标所在位置的x和y坐标值。这样,当鼠标在界面上点击时,按钮就会显示出当前鼠标的坐标值。除了鼠标按下事件,还有鼠标释放、双击、移动、滚轮等事件,其处理方式与这个例子是相似的。
1、首先,开发多个Qt应用程序,每个应用程序都有独立的UI界面和业务逻辑。
2、在系统启动时,启动器程序会运行,启动器程序是一个Qt应用程序,它的主要功能是控制其他应用程序的启动和关闭。
3、启动器程序需要在主窗口中显示多个按钮或菜单项,每个按钮或菜单项代表一个应用程序。
4、当用户点击一个按钮或菜单项时,启动器程序会启动对应的应用程序,并将应用程序的窗口显示在主窗口中,用户可以在主窗口中切换不同的应用程序。
5、当用户关闭一个应用程序时,启动器程序会将该应用程序的窗口关闭,并释放对应的资源。
什么时候需要头文件,是这样的: 编译程序如果遇到一个函数调用,那么它就要查这个函数是否给出了调用的格式,假设这个函数是在调用程序前面写出的,那么经过编译程序的编译,编译程序已经知道了函数调用规则格式,就不需要再说明了
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里的gqavi文件
#cd /usr/local/smplayer/bin
#/mplayer /sdcard/gqavi
#启动友善的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/rcd/initd/netd start
echo "
"
>
/dev/tty1
echo "Starting networking"
>
/dev/tty1
sleep 1
/etc/rcd/initd/>
以上就是关于qt程序运行py文件全部的内容,包括:qt程序运行py文件、qt按钮不关联光标、嵌入式qt跑多个应用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)