當前位置:首頁 » 網頁前端 » qt執行js腳本添加自定義指令
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

qt執行js腳本添加自定義指令

發布時間: 2022-09-24 22:24:57

⑴ 如何向iframe中寫入js代碼讓js在iframe中執行

1、首先,新建一個網頁。

⑵ JS腳本怎麼運行

常見的執行js代碼都是放入到HTML引入後,然後通過HTML文件來執行胡查看代碼。顯然這是比較麻煩的事情,如果電腦裡面安裝了node.js,可以使用node來直接使用node來運行想要運行的js文件。

<html>

<body>

<script language="javascript">

function Card(owner,rate)

{

this.Owner=owner;

this.Rate=rate;

}

var mycard = new Card("X","150");

document.write("name:"+mycard.Owner+"speed:"+mycard.Rate);

</script>

</body>

</html>

(2)qt執行js腳本添加自定義指令擴展閱讀:

JavaScript語言中採用的是弱類型的變數類型,對使用的數據類型未做出嚴格的要求,是基於Java基本語句和控制的腳本語言,其設計簡單緊湊。

腳本簡單地說就是一條條的文字命令,這些文字命令是我們可以看到的(如可以用記事本打開查看、編輯),腳本程序在執行時,是由系統的一個解釋器,將其一條條的翻譯成機器可識別的指令,並按程序順序執行。因為腳本在執行時多了一道翻譯的過程,所以它比二進製程序執行效率要稍低一些。

⑶ Qt 軟體中怎麼自動加入build版本號

當進入解壓好的源碼包後,使用./configure –help命令,可以獲得相應幫助,那我們只要選取參數部分看看 -release 這個參數顯而易見,就是編譯Qt以發布版的模式進行,一般來說,最後系統完成後,庫就應該是發布版。 -release 與上面對應,自然是調試版了,如果開發的話,可以選擇它吧。 -debug-and-release 囧,上面那兩個的兒子。 -developer-build 囧,我錯了,開發者也可以用這個的,選了這個後,可以進行自動測試,不過還沒去用過,以後可以研究研究。 -opensource -commercial 這兩個參數是指是編譯是商業版本的,還是開源版本呢,視個人情況而定。 -shared -static 這兩個參數是指Qt的lib以動態還是靜態編譯生成,這自然也是視個人需要的。 -no-fast -fast 這兩個就很有關系,如果對自己的電腦性能很有信心,那就選第一個,那所有的工程文件都會生成到makefiles中,那編譯的時間,估計可以看完變形金剛了。如果選第二個,那就加入子目錄和庫到makefiles,這樣就能加快編譯的速度。 -no-largefile -largefile 顧名思義,支不支持大文件,一般來說,嵌入式里是不會有從超過4G的大文件的,那就選第一個吧。 -no-exceptions -exceptions 計算機英語夠好的人都該懂,這個自然就是異常情況,選則編譯器支持拋出異常,否則不支持。 -no-accessibility -accessibility 可訪問性的支持,說實話,這個我真不知道有什麼有用了。等哪天發現了,再來好好解釋。 -no-stl -stl 是都加入stl的支持,stl,這應該算是C++程序員應該都了解了,再不濟,那也總聽說過大名吧。 no-sql-<driver> -qt-sql-<driver> -plugin-sql-<driver> 這 個可要好好說明下,一般來說,對於一個優秀的項目開發,資料庫是必不可少的,qt也自帶了大多數資料庫驅動,可以完美地支持資料庫的使用。對於數 據庫的使用,我們可以直接qt驅動編譯進去,或者以插件的形式編譯進去。一般來說,最簡單地就是直接編譯進去,但使用插件形式的可以更加靈活,針對不同的 需求將驅動插件添加。其中,<>代表的是驅動名,如果我想直接添加sqlite的支持話,形式如下:-qt-sql-sqlite。其他名稱 可以自己查看參數里,有詳細地介紹。 -system-sqlite sqlite真受歡迎啊,當然那麼優秀的嵌入式資料庫,本人也是基本使用它來進行開發。這個參數意思是使用操作系統上的sqlite資料庫,如果是不太會移植的,可以考慮直接使用qt自帶的驅動。 -no-qt3support -qt3support 這個也是簡潔易懂,加不加對qt3的支持。 no-xmlpatterns -xmlpatterns 選擇對xml的支持,如果對網路無需求的話,就不用加了。 -no-phonon -phonon phonon是qt中處理多媒體的模塊,比如放放視頻什麼來著,不過本人從沒用過,也是根據需要選擇的。 -no-phonon-backend -phonon-backend 與上面類似,只不過這兩是以插件的形式加入支持。 -no-svg -svg 是否加入svg的支持,svg即可縮放矢量圖形。 -no-webkit -webkit 是否加入webkit的支持,這可是個好東西,不過如果跟網路不搭界的話,還是不支持吧。 -no-scripttools -scripttools 是否加入腳本工具的支持,這對php等腳本工程師來說是個很棒的參數,但對於我這樣菜鳥,就別提了。 -platform target 目標平台,這可是關鍵了,如果不注意的話,編譯出來是x86上的話,哪怕是再牛的嵌入式工程師來也沒法幫你移植到開發板上。通常,本人是linux-arm-g++。 -no-mmx -no-3dnow -no-sse -no-sse2 這四個參數是針對CPU的指令集,老實說,我也不甚了解,不過,對於開發並不是影響很大。 -qtnamespace 把qt的庫封裝到命名空間,沒啥重要用處,依個人愛好加吧。 -qtlibinfix 將所有的qt的.so庫重命名,也沒啥大用處。 -no-sql-<driver> -qt-sql-<driver> -plugin-sql-<driver> -system-sqlite 這是相當明顯的,如果這都看不出來,,囧,那您一定比我近視(本人800度近視。。) 就 是說如果是-no-XX-,就說明編譯時不選擇這個參數,如過是-qt-XX-,說明我們可以編譯直接選用qt自帶的驅動,如果是 -plugin-XX-,就是將驅動以插件形式編譯,而-system-XXX,當然是使用操作系統提供的驅動,不過那就需要您自己移植了,而且有時還要 用第三方的API,就方便來說非常麻煩,但是不排除您是牛人要好好玩玩的情況。 接下來,我們接著研究配置參數。 -qt-zlib -system-zlib 想 必經過上面的講解,參數的意思已經很快得知,就是選擇qt帶的zlib庫還是系統的zlib。zlib庫是用於文件和資料壓縮的庫,對於新入嵌入式的人來 說,可能並無太大的用處,但是在以後的實際開發中,特別是對於多媒體圖像圖形的工程師來說,就肯定用到,因為圖形圖像的壓縮都要使用或涉及到這個庫。 -no-gif -qt-gif 這是選擇gif的支持,如果選擇qt支持的話,那在用qt開發的項目中,就能顯示gif圖,gif也是比較普遍的圖片格式了,英文全稱是Graphics Interchange Format。 -no-libtiff -qt-libtiff -system-libtiff tiff是一種非常復雜的光柵圖像格式,並且有直接現成的C語言實現庫,因此選擇參數時就有了qt和system,一般來說,科學相關的開發里可能會用到。 -no-libpng -qt-libpng -system-libpng png的相關參數,一種非失真性壓縮點陣圖圖形文件格式,其實就是為了替代gif搞出來的,也是隨實際需要來選擇,當然,也有C語言實現的庫。 -no-libmng -qt-libmng -system-libmng 大汗,大汗,這可是超級罕見的東西,QT竟然也能支持,說實話,這個參數我看來就是無視的。MNG是多幀PNG動畫格式,結構極其復雜,基本沒人用。 -no-libjpeg -qt-libjpeg -system-libjpeg jpeg,這么有名的圖片格式也不用說了,隨需要選擇吧。 -no-openssl -openssl -openssl-linked SSL,Security Socket Layer,是一個安全傳輸協議,在Internet網上進行數據保護和身份確認,而OpenSSL是一個開放源代碼的實現了SSL及相關加密技術的軟體 包,在qt中,我們可以選擇直接支持,或者OpenSSL鏈接支持,這個參數也是為有需要者提供的。 以上是第三方庫的參數選擇,緊接著就是qt附加參數,在附加參數里,我們可以指定編譯的部分及加入參數來獲取信息。 -make -nomake 一 句話,說明,就說我可以這兩個參數選擇哪些我要編譯,哪些我不需要,在 libs tools examples demos docs translations這些里你可以選擇,比如examples,並不重要,可以放在-nomake後,這樣編譯過程中就不會編譯這部分了。通過適當的 選擇,我們可以大大加快編譯的速度,這對配置較差的機子來說有著積極意義。 -R <string> -l <string> 這兩個參數是為編譯時增加一個庫的運行路徑及頭文件的路徑,比如使用tslib作為開發觸摸驅動時,我們就應使用這兩個參數來指定tslib的庫路徑和頭文件路徑。 -no-rpath -rpath 這個參數比較難於理解,簡單地說,就是告訴動態載入器,到-rpath指定的目錄中尋找編譯時須要的動態鏈接庫,語法就與上面的參數結合,比如 -rpath -R/home/xxxx。 -continue 這個參數的作用就是當出現錯誤時依然進行配置編譯,換我是不會加上的。 -verbose, -v 這個參數就很眼熟,在前面的文章中有過詳細介紹,簡言之,就是顯示配置的每一步的具體信息。 -no-optimized-qmake -optimized-qmake 是否編譯生成優化過的qmake,沒啥大用,也屬於可有可無的參數。 -no-nis -nis 是否編譯NIS支持,NIS(網路信息服務)是一個提供目錄服務的RPC(遠程過程調用)應用服務,當然沒網路需要的可以再次華麗地無視。 -no-cups -cups 是 否編譯CUPS支持,是不是想問什麼用啊?~~~~囧,開列印店用的。好了,不說冷笑話,CUPS給Unix/Linux用戶提供了一種可靠有效 的方法來管理列印。它支持IPP,並提供了LPD,SMB(服務消息塊,如配置為微軟WINDOWS的列印機)、JetDirect等介面。CUPS還可 以瀏覽網路列印機。它的開發提供者是大名鼎鼎的「水果生產商」----蘋果公司。 -no-iconv -iconv 選擇是否編譯iconv支持,iconv是一個計算機程序以及一套應用程序編程介面的名稱。它的作用是在多種國際編碼格式之間進行文本內碼的轉換。這對跨語言Qt開發人員來說是很有用的,當然,考慮到中文的編碼,我也選擇加入支持。 -no-pch -pch 是 否支持預編譯過的頭文件。預編譯頭就是把一個工程中的一部分代碼,預先編譯好放在一個文件里(通常以.pch為擴展名),這個文件就稱為預編譯頭 文件。這些預先編譯好的代碼在工程開發的過程中不會被經常改變。如果這些代碼被修改,則需要重新編譯生成預編譯頭文件。媽媽經常說:不懂就要學。我說:不 懂就加上。。。 no-dbus -dbus -dbus-linked 是否編譯編譯QtDBus模塊。dbus是freedesktop下開源的Linux IPC通信機制,本身Linux 的IPC通信機制包括,管道(fifo),共享內存,信號量,消息隊列,Socket等。在Qt中DBUS是有單獨的模塊的,可見其重要性。 -rece-relocations 對於額外的庫鏈接器優化,可以減少編譯中的再定位。 no-separate-debug-info -separate-debug-info 是否存儲debug信息在.debug,一般為了查錯,還是選擇存儲吧。 -xplatform target 相當淺顯的參數,即交叉編譯的目標平台,一般來說根據你所要移植的目標板來確定。 -no-feature-<feature> -feature-<feature> 選 取qte的feature編譯,對於這個,我理解為特性,特性的描述你可以參考src/corelib/global/qfeatures.txt,在這 裡面對於每個特性都有比較充分的講解。對於特性地選擇,也是要根據開發需求進行,如果裁剪適當,能大大為qte庫瘦身。 -embedded <arch> 嵌入式平台架構選擇,可以選擇arm,mips,x86及generic,視你的目標平台決定吧。 -armfpa -no-armfpa 這個參數也只是針對ARM平台的,是否加入對於基於ARM的浮點數格式的支持,通常,這個參數在編譯時會自動選擇。 -little-endian -big-endian 目標平台的大端和小端選擇,這應該是常識了,如果這不知道,就不要來混嵌入式了 -host-little-endian -host-big-endia 主機平台的大端和小端選擇,屬於雞肋的參數,不選擇也會在配置時自動選擇。 -no-freetype -qt-freetype -system-freetype 選擇freetype,FreeType庫是一個完全免費(開源)的、高質量的且可移植的字體引擎,它提供統一的介面來訪問多種字體格式文件,在嵌入式開發中,有套可使用的字體對於中文開發至關重要,本人一般使用文泉驛字體。 -qconfig local 使用本地的qconfig配置文件來替代全部參數配置,有需要的可以去研究下,可以裁剪控制項級別的參數。 -depths <list> 顯示的像素位深,也是根據需要來進行吧。 -qt-decoration-<style> -plugin-decoration-<style> -no-decoration-<style> 這個是選擇qt的樣式風格,對於需要美化界面的項目來說,可以好好選擇下。 -no-opengl -opengl <api> 是否加入opengl的支持,OpenGL是個專業的3D程序介面,是一個功能強大,調用方便的底層3D圖形庫。不過對於一般的開發來說,似乎有很少用到的地方。 -qt-gfx-<driver> -plugin-gfx-<driver> -no-gfx-<driver> 這個是相當重要的一個參數,選擇QtGui的圖形顯示驅動,比如我們在pc上使用qvfb模擬時,就應該加入對qfvb的支持。我們可以在 linuxfb,transformed,qvfb,vnc,multiscreen這幾個中選擇。在平常的開發板上,選擇linuxfb即可。 -qt-kbd-<driver> -plugin-kbd-<driver> -no-kbd-<driver> 選擇鍵盤的驅動支持,可以支持usb鍵盤,串口鍵盤等等,也是在tty,usb ,sl5000, yopy, vr41xx ,qvfb中選擇。 qt-mouse-<driver> -plugin-mouse-<driver> -no-mouse-<driver> 滑鼠的驅動支持,一般都會選擇tslib,可以完美地支持觸摸屏,在pc,bus,linuxtp,yopy,vr41xx,tslib,qvfb中選擇吧。 -iwmmxt 加入iWMMXt指令的編譯,也只是部分XScale架構才具有。 -no-glib -glib 是否加入glib庫的支持,glib庫對應即gtk庫,就也是說加入後可以使用gtk。

⑷ 如何在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中怎樣添加qtscript庫

解析是js的事情,你只要會寫js就沒事,
至於怎麼執行腳本,請參考文檔,裡面說的很詳細

⑹ pyqt 怎麼使用js腳本文件

花了前後將近一個星期的時間,終於用PyQT實現了我的第一個程序。本程序實現了使用QThread後台處理數據、QThread的暫停,恢復、停止等功能。
主要有幾個問題:
1、後台單獨線程處理數據的問題;最初不明白QT在子線程中不能操作GUI的問題,因此查了很久的GUI的crash的問題
2、界面的布局;理解了gridLayout這個非常方便的布局方法。

代碼片段
# -*- coding: utf-8 -*-

"""

Mole implementing umd_MainWindow.

"""

import sys, os, re, time,sip

from PyQt4 import QtGui, QtCore

from dict4ini import DictIni

from Ui_ebook_txt import Ui_umd_MainWindow

class eBookException(Exception):

pass

class ebookParseWorker(QtCore.QThread):

'''QT中子線程內不能操作GUI界面,切記切記'''

def __init__(self, parent=None):

QtCore.QThread.__init__(self, parent)

self.exiting = False

self.isWait=False

self.data={}

def setVar(self, name, value):

self.data[name]=value

def __del__(self):

self.exiting = True

self.wait()

def buildRegx(self):

#self.alert(regx)

if self.data['chmChapterRegx'] is None:

regx='pages\[(\d+)\]\s*=\s*\[(.*)\];'

try:

self.chapterInfo=re.compile(self.data['chmChapterRegx'])

except:

self.alert('列表處理正則表達式不正確')

return False

self.chapterList=[]

return True

def getChapterList(self):

if os.path.exists(unicode(self.data['chmChapterJs'])) ==False:

self.alert('章節列表JS文件%s不存在'%(self.data['chmChapterJs']))

return False

if self.data['inputCharset'] is None or self.data['inputCharset'].strip()=='':

self.data['inputCharset']='gbk'

m=self.chapterInfo.findall(open(unicode(self.data['chmChapterJs']),'rb').read())

vol=''

for x in m:

oldChapterInfo=x[1].split(',')

newChapterInfo={}

if len(oldChapterInfo)==4:

if oldChapterInfo[3].strip('"').strip("'")[0:5]!='<img alt="" /><1:

self.alert('章節列表小於1,請檢查列表正則表達式是否正確')

return False

return self.chapterList

def run(self):

#是否觸發錯誤

error=False

self.alert("<span><strong>開始處理章節內容</strong>")

if self.data['inputCharset'] is None or self.data['inputCharset'].strip()=='':

self.data['inputCharset']='gbk'

if self.data['outputCharset'] is None or self.data['outputCharset'].strip()=='':

self.data['outputCharset']='gbk'

if self.data['oldChapterTxtDir'] is None or self.data['oldChapterTxtDir'].strip()=='' :

self.alert('原始文件存放位置為空')

error=True

if self.data['newChapterTxtDir'] is None or self.data['newChapterTxtDir'].strip()=='':

self.data['newChapterTxtDir']=self.data['oldChapterTxtDir']

if os.path.exists(unicode(self.data['newChapterTxtDir'])) ==False:

⑺ 如何用VS2008為QT控制項加代碼(最好有具體點的操作步驟)謝謝!

1. 安裝vs2008。注意:不是Express版本.
2. 安裝Qt for windows。 注意Qt的安裝路徑最好安裝在全英文路徑而且中間沒有空格。
3. 安裝Qt SDK for wince,(過程比較長)
打開visual studio 2008命令提示,然後順序執行以下命令:
a. VS2008命令提示(DOS),進入QTCE文件夾執行, 輸入命令: configure -platform win32-msvc2008 -xplatform wincewm60professional-MSVC2008 -webkit –fast
b.設置VC的CE INCLUDE和LIB目錄c. 輸入命令 nmake 執行
c.輸入命令 nmake 執行
4. 安裝Qt的VS開發插件(qt-vs-addin)
5. 配置VS2008的Qt開發環境(VS2008最好是英文版本)進入VS2008,選擇Qt菜單,Qt Option,進行設置。