#

這篇文章說明ezdit中建立專案、編寫tcl程式及執行程式的方法。

1. 事前準備

在開始之前你需要在ezdit下載頁面取得最新版本的ezdit。

若是你還沒有裝Tcl的開發環境,請參考教學文件中Windows下安裝Tcl/Tk開發環境的說明。

2. 建立程式專案

現在請啟動ezdit,然後點選功能表列上的「專案/新增專案」如下圖:



接下來請依下一張圖的指示,在「建立新專案」的對話方塊上,先選取「空白的專案」然後把「工作目錄」切換到自己知道的位置,最後再輸入專案的名稱「Project-1」。你可以使用任何你喜歡的名稱!!不過還是建議先和我一樣,以利於接下來的操作。



專案建立完畢以後,下一步是要加入一個新的Tcl/Tk程式檔案。請在左邊專案管理中「Project-1」的資料夾上面按一下滑鼠右鍵叫出功能表,然後依下圖上的指示加入一個「Tcl Script」項目。



注意哦!! 新建立的程式檔案請把它命名為"main.tcl",習慣上我們把專案最先執行的程式檔案這樣命名。接下來我們可以開始寫程式了。

3. Hello World

按慣例,學習程式語言的第一個程式常常是在螢幕上列印出「Hello World」這個文字串。所以我們也要寫一個類似這樣的程式,請用滑鼠左鍵快按兩下專案中的「main.tcl」來編輯它,然後在編輯區中輸入下面的程式碼。寫完以後要記得要儲存檔案。注意!!請把檔案的字元編碼設定為utf-8,這樣的話程式才不會顯示亂碼。

button .btn -text "按我一下" -command {puts "Hello!!"}
pack .btn



4. 執行程式

請再次檢查程式沒有打錯,程式碼的大小寫要和圖上的一樣,空白的位置也是要一樣的。如果都確認過了,請按下鍵盤上的「F4」叫出執行程式的對話方塊,然後輸入和我一樣的內容。

在執行的位置輸入 : wish -encoding utf-8 {%F}
這個命令的意義是 : 使用wish直譯器執行目前的檔案,而且把目前的檔案當成utf-8編碼處理。
如果你的平台是Windows也許你要把wish改成c:\Tcl\bin\wishXX.exe其中XX是版本編號。
都沒問題後就按下執行按鈕。



執行後,應該會出現一個小視窗。每當你按一下小視窗上的按鈕,ezdit下方的輸出頁籤上都會列印一行”Hello!!”。



如果沒有出現這樣的結果,請再次檢查程式碼有沒有問題或是Tcl有沒有正確的安裝好。

5. 程式說明

這個程式並不困難只有兩行而以,下面是第一行的程式說明。

button .btn -text "按我一下" -command {puts "Hello World"}

button 是Tcl/Tk用來建立按鈕的命令。

.btn 可以把它看成將建立按鈕獨一無二的ID。

-text 可以用來指定按鈕上要顯示的文字,後面的”按我一下”就是要顯示的內容。

-command 用來指定按鈕按下去後要執行的動作,後面大括號裡面的內容就是按下去要執行的動作。

puts “Hello World” puts 是輸出用的命令,它會把後面用雙引號夾起來的文字串輸出到螢幕上。

接下來的一行功能很簡單,pack可以把剛剛建立的按鈕放在視窗上顯示。

pack .btn

如果我們把程式改成下面的4行,那就可以建立2個按鈕了。修改完記得儲存檔案,然後再按F4重新執行一次。

button .btn -text "我的名字是" -command {puts "dai"}
button .btn2 -text "我的生日是” -command {puts "11月15"}
pack .btn
pack .btn2

依此類推 你會自己多加一些按鈕嗎??

6. 移除ezdit

移除ezdit是一件容易的事,你只需要刪除下列的檔案就可以了:
  • ezdit程式檔案
  • C:\Documents and Settings\你登入Windows的帳號\.ezdit

ezdit徹底移除了,它不會在你的系統裡留下其它的垃圾。

17 個意見

志中 | 2010年11月11日 下午1:14

Dai大大,我想請問一下tcl可以像c一樣寫成多個.tcl檔,然後再由main.tcl去include進來嗎?
如果不行的話,那豈不是一個.tcl會有上千上萬行,可是這樣對嗎?謝謝~~

Iris | 2010年11月15日 下午2:09

how to install ezdit on mac? thx.

dai | 2010年11月20日 上午10:10

hello Iris~

Please download the source code of ezdit first.

And run the ezdit by :

wish ezdit-src/main.tcl

dai | 2010年11月20日 上午10:12

Hi 志中:

請參考14.4這個章節,裡面有說明把程式拆多個檔案的方法.

米粒 | 2011年4月22日 上午11:19

問題:
執行ezdit下出現下列問題,但root權限下卻無此問題,請問一下花生省門市呢?

權限:
-rwxrwxrwx 1 oknow oknow 6680966 2010-12-10 18:23 ezdit-linux-0.9.2.bin

錯誤訊息:
oknow@oknow-System-Product-Name:~$ ./ezdit-linux-0.9.2.bin
bad text index ""
while executing
"$wtext mark set insert $idx"
(class "::dApp::ceditor" method "goto" line 8)
invoked from within
"my goto $val"
(class "::dApp::ceditor" method "configure" line 60)
invoked from within
"$Priv($fpath,editor) $cmd {*}$args"
(class "::dApp::nbe" method "editor" line 8)
invoked from within
"my editor configure -pos $pos"
(class "::dApp::nbe" method "rc_load" line 28)
invoked from within
"$::dApp::Obj($obj) rc_load"
(class "::dApp::main" method "Rc_Load" line 31)
invoked from within
"my Rc_Load"
(class "::dApp::main" constructor line 9)
invoked from within
"::dApp::main new"
(file "/home/oknow/ezdit-linux-0.9.2.bin/main.tcl" line 518)

dai | 2011年4月22日 下午7:15

Hi 米粒,
是這樣的ezdit在啟動及關閉時都會去你的家目錄下存取ezdit的設定檔,會出現你貼的錯誤訊息,是因為ezdit沒辦法存取家目錄的關系。

米粒 | 2011年4月25日 上午10:00

問題:
修改了家目錄及使用者目錄為777 還是出現一樣的問題,請問一下花生省門市呢?

權限:
drwxrwxrwx 4 root root 4096 2011-02-22 13:59 home
drwxrwxrwx 74 oknow oknow 20480 2011-04-25 09:46 oknow

錯誤訊息:
bad text index ""
while executing
"$wtext mark set insert $idx"
(class "::dApp::ceditor" method "goto" line 8)
invoked from within
"my goto $val"
(class "::dApp::ceditor" method "configure" line 60)
invoked from within
"$Priv($fpath,editor) $cmd {*}$args"
(class "::dApp::nbe" method "editor" line 8)
invoked from within
"my editor configure -pos $pos"
(class "::dApp::nbe" method "rc_load" line 28)
invoked from within
"$::dApp::Obj($obj) rc_load"
(class "::dApp::main" method "Rc_Load" line 31)
invoked from within
"my Rc_Load"
(class "::dApp::main" constructor line 9)
invoked from within
"::dApp::main new"
(file "/home/oknow/ezdit-linux-0.9.2.bin/main.tcl" line 518)

dai | 2011年4月26日 下午11:23

米粒,
嗯 ~ 你把家目錄下的.ezdit移除,應該就沒問題了。

匿名 | 2012年12月17日 下午11:17

DAI Sir 你好
我在Windows下執行
路徑依照我Tcl的位置設
但是找不到~~~~~

dai | 2012年12月18日 上午10:51

Hello,

如果說在執行程式時,出現找不到直譯器的問題,一般來說可能南安裝Tcl的路徑出了問題~
例如,Tcl安裝在有中文、空白、中括號或其奇怪的資料夾名稱內~
也許你可以試試把tcl安裝資料夾內的bin路徑加到系統的PATH環境變數裡,說不定可以解決!!

Niky | 2013年3月26日 下午5:41

Dear Dai,
我自己寫了兩個tcl檔案, 1.tcl 是一個小GUI,用來init or close 檔案2.tcl,
現在有點問題是當我按下"離開"按鈕,就會出現 "應用程式發生例外 不明的軟體例外錯誤(0xc0000409)於位置 0x68cd295d",
但我用ezdit 0.93 "stop"都很正常,想問dai 是否有什麼方法可以避免?謝謝.

檔案1.tcl
set img2 [image create photo -file D:/icon/exit.png]
ttk::button .btnExit -image $img2 -text "Exit" -command {exit }

檔案2.tcl
proc connect {client} {

global spawn_id
spawn telnet $client
set sid($client) $spawn_id
...............
...............
}

dai | 2013年3月27日 下午1:41

嗯 ~ 這看起來像是直譯器或OS出了問題,也許換一個Tcl的版本就沒問題了!!

匿名 | 2013年4月2日 下午3:36

我在Windows 7下安裝,我執行程式時,會有一個小對話方塊跳出來,但是空白的。
下方只有這樣的訊息
執行命令 : C:/Tcl/bin/wish85.exe
(ezdit-windows-0.9.3) %

dai | 2013年4月2日 下午8:16

改這樣試試

執行命令 : C:/Tcl/bin/wish85.exe {%F}

匿名 | 2013年4月3日 上午10:18

dai感謝你,已經OK了!你的資料對我很有幫助,謝謝。

-----------------------------------------------
匿名 | 2013年4月2日下午3:36

我在Windows 7下安裝,我執行程式時,會有一個小對話方塊跳出來,但是空白的。
下方只有這樣的訊息
執行命令 : C:/Tcl/bin/wish85.exe
(ezdit-windows-0.9.3) %

匿名 | 2015年4月12日 下午2:58

你好~

我的環境是Windows 7,我執行程式會有錯誤訊息!!
我的執行命令如下:
C:/Tcl/bin/wish86.exe {%F}
錯誤訊息為:
couldn`t read file "":no such file or directory

水果糖 | 2016年8月26日 下午12:10

執行命令後出現: couldn't execute "wish": no such file or directory

留下您的意見

Theme Design by devolux.org. Converted by Wordpress To Blogger for WP Blogger Themes. Sponsored by iBlogtoBlog
This template is brought to you by : allblogtools.com | Blogger Templates