qt腳本
『壹』 如何用Qt從一段js腳本中得到某個對象的值
綁定一個webobject,然後掉函數,作為參數傳遞進入。
『貳』 我使用的是windows下的QT,使用qmake生成的makefile腳本,怎麼才能執行makefile腳本
用cmd 進入DOS。。。然後進入你的工程目錄,在工程目錄下,執行make。注意:make的路徑!
『叄』 在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
『肆』 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"'命令,...
『伍』 如何在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軟體
Qt 是一個1991年由Qt Company開發的跨平台C++圖形用戶界面應用程序開發框架。
Qt既可以開發GUI程序,也可用於開發非GUI程序,比如控制台工具和伺服器。Qt是面向對象的框架,使用特殊的代碼生成擴展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴展,並且允許真正地組件編程。
2008年,Qt Company科技被諾基亞公司收購,Qt也因此成為諾基亞旗下的編程語言工具。2012年,Qt被Digia收購。
2014年4月,跨平台集成開發環境Qt Creator 3.1.0正式發布,實現了對於iOS的完全支持,新增WinRT、Beautifier等插件,廢棄了無python介面的GDB調試支持,集成了基於Clang的C/C++代碼模塊,並對Android支持做出了調整。
(6)qt腳本擴展閱讀
優點:
1、優良的跨平台特性。
Qt支持下列操作系統:Microsoft Windows 95/98、Microsoft Windows NT、Linux、Solaris、SunOS、HP-UX。
Digital UNIX (OSF/1、Tru64)、Irix、FreeBSD、BSD/OS、SCO、AIX、OS390和QNX等。
2、面向對象。
Qt的良好封裝機制使得Qt的模塊化程度非常高,可重用性較好,對於用戶開發來說是非常方便的。Qt提供了一種稱為signals/slots 的安全類型來替代callback,這使得各個元件之間的協同工作變得十分簡單。
3、豐富的API。
Qt包括多達250個以上的C++類,還提供基於模板的collections、serialization、file、I/O device、directory management和date/time類。甚至還包括正則表達式的處理功能。
4、支持2D/3D圖形渲染,支持OpenGL。
『柒』 QT語言是什麼
Qt不是語言,是一個c++類庫,多用來編寫界面,但是qt類庫實際上非常全面,多線程、資料庫支持、IO和網路都支持。qt有自己的IDE qtcreator,也可以掛載在vs開發,支持跨平台(windows、linux),安卓也支持但是不推薦用qt寫安卓。Qt的文檔完整性和可讀性非常高,是真正可以照著文檔編程的(每個函數都有實例,每個參數都有解釋),目前語言支持c++(qt widget項目)、python(pyQt)、Qml(Qt quick項目),qml是qt自己的腳本,類似js
『捌』 怎麼在qt中 載入js腳本,謝謝
使用Webkit library (可以說是純QT實現)
代碼量不多,直接貼代碼 (讀起來一點不痛苦的) :
myWebView = new QWebView(this); //this 是main window widget, myWebView 是它的成員變數
myWebView->page()->settings()->setAttribute(QWebSettings::javascriptEnabled, true);
myWebView->page()->settings()->setAttribute(QWebSettings::PluginsEnabled,true)
myWebView->page()->mainFrame()->addToJavaScriptWindowObject("mainWindowObject", this); //html頁面中,可以通過"mainWindowObject"這個對象名訪問主控制項中的方法 (slot)
setCentralWidget(myWebView);
myWebView->setUrl( xxx ); //xxx是你的url或本地html路徑
//. . .
class MainWindow : public QMainWindow
{
//. . .
public slots:
void CPlusPlusFunction(const QString& str) //這個函數是將被JavaScript調用的
{
myWebView->page()->mainFrame()->uateJavaScript( QObject::tr("jsFunction('Popup Dialog')") );
}
};
HTML文件內容如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>myjstest</title>
<script language="JavaScript" type="text/javascript">
function jsFunction(values) //this function will be called from C++ codes
{
alert(values);
}
function test()
{
mainWindowObject.CPlusPlusFunction( "calling C++ function from javaScript" );
}
</script>
</head>
<body>
<div id="dest"></div><form action="" method="post">
<input type="button" name="" value="myTest" onclick="test()" />
</form>
</body>
</html>
這種方法,使用Webkit作為瀏覽器,如果你的頁面使用了ActiveX控制項(比如google earth插件),則不能正常工作。
這種情況下,你需要放棄Webkit,在主程序中調用IE 控制項(WebBrowser Control)作為瀏覽器。(但是這樣也失去了跨平台的支持,因為IE只能在Wndosw上跑。)
『玖』 怎樣用QtCreator編輯運行python腳本
每種實現類都根據自己所實現的協議來完成TProtocol介面函數的功能,例如實現了TProtocol介面的TBinaryProtocol類,對於readDouble()函數就是按照二進制的方式讀取出一個Double類型的數據。