Perl 入門指南 - 完成版的 guidemo.pl

我們的 guidemo.pl 還剩兩個按鈕 ClearCopy 還沒實際建置功能




完整程式請參考


Clear 的目的就是用來清除使用者輸入與結果,程式如下
sub clear_button {
    $encrypt = -1;
    $userinput = "";
    $result = "";
    $input_field->delete('0', 'end');
    $output_field->delete('0', 'end');
    $display_message = "It's done.";
}


這裡除了將 $userinput 、 $result 設定為空字串 (string) , $input_field 與 $output_field 呼叫 delete() 刪除 '0' 到 'end' 之間的字元內容,也就是所有的內容, $encrypt 也重新設定為 -1
$encrypt = -1;


因此使用者點擊 Clear 之後,所有設定都會歸零,如果要編碼或解碼文字必須重新輸入文字,也都得 NewLoad Encrypt 物件 (object) ,才能順利 EncodeDecode


清除工作完畢,訊息欄顯示 "It's done." 。


Copy 則是把編碼結果拷貝到系統剪貼簿,當然,如果使用者沒有按過 EncodeDecodeself.result 就會是空字串,這樣拷貝是沒有意義的,因此這裡先做個條件判斷
sub copy_button {
    if ($result eq "") {
        $display_message = "Copy denied!!";
    }
    else {
        $mw->clipboardClear;
        $mw->clipboardAppend($result);
        $display_message = "It is already copied to the clipboard.";
    }
}  


如果不是空字串就會進行拷貝到剪貼簿的動作,這裡是用 Tk 物件本身的 clipboardAppend() 方法 (method) ,然後直接以 $result 當參數 (parameter)
$mw->clipboardAppend($result);


來執行看看囉!下面是 Clear



下面是 Copy



拷貝過後就可以貼到其他地方



好了,我們已經學完開發一套 GUI 軟體了,下一步是?


中英文術語對照
字串string
物件object
方法method
參數parameter


您可以繼續參考
GUI 篇


相關目錄
回 Perl 入門指南
回 Perl 教材
回首頁


參考資料
http://search.cpan.org/~ni-s/Tk-804.027/pod/UserGuide.pod
http://search.cpan.org/~ni-s/Tk-804.027/pod/Button.pod
http://search.cpan.org/~ni-s/Tk-804.027/pod/Entry.pod
http://search.cpan.org/~ni-s/Tk-804.027/pod/Label.pod

沒有留言: