[問題] 關於使用perl tk固定視窗大小

作者: mattheww (阿政)   2014-06-26 15:54:51
大家好,小弟是perl新手,
最近由於研究需要用perl/tk模組做了一個GUI介面,
目前遇的到一個問題想請問板上的高手,
遇到的問題是想固定視窗的大小,
所以我嘗試著找了許多把右上角放大縮小disable(變灰色)的方法,但都找不到,
想請問板上高手有沒有類似以下:
$mw->protocol('WM_DELETE_WINDOW',sun{return;});
這種寫法來讓右上角的放大縮小也像close(即"X"鈕),可以讓它disable掉。
此外,
還發現一種方法:
$mw->overrideredirect(1);
這種寫法遇到的問題是雖然視窗大小可以固定了,
但整個視窗似乎沒辦法任意移動位置。
以上問題希望板上高手能幫忙,謝謝!
小弟初次發文,若排版不佳敬請見諒。
作者: LiloHuang (十年一刻)   2014-06-26 19:52:00
$mw->resizable(0, 0);
作者: mattheww (阿政)   2014-06-26 20:59:00
非常謝謝LiloHuang大的回覆。想請問是否有辦法按視窗右上角的放大/縮小都使整個視窗大小維持住原本的大小,現在卡在視窗的確不能上下左右拉大,但一按右上角放大之後又會整個版面亂掉,以上。抱歉,可能我原本意思不夠清楚,謝謝!
作者: LiloHuang (十年一刻)   2014-06-26 21:31:00
設定(0, 0)之後應該是不能按中間那顆放大縮小了吧?我設定之後放大縮小的按鈕會 Disable (grayed out)
作者: mattheww (阿政)   2014-06-26 22:09:00
我的中間那顆放大縮小還是可以按,不知道是不是我哪邊弄錯了我的打法是$mw = Mainwindow->new();$mw->geometry("400x100");$mw->resizable(0,0); 大概是以上這樣
作者: LiloHuang (十年一刻)   2014-06-26 22:19:00
差不多,我是用 ActivePerl 5.6.1,你的直譯器版本是?懷疑是不同版本的 Tk 可能略有差異,我這邊是 grayed 的
作者: mattheww (阿政)   2014-06-26 22:27:00
我的是寫perl,v5.8.8(在linux環境下執行)
作者: LiloHuang (十年一刻)   2014-06-26 22:32:00
目前沒對應的平台可以幫你測試,假日再研究看看囉
作者: mattheww (阿政)   2014-06-26 22:32:00
不好意思,請問grayed指的是?嗯嗯,真的很感謝LiloHuang大大的熱心幫忙!
作者: LiloHuang (十年一刻)   2014-06-26 22:34:00
grayed out http://en.wikipedia.org/wiki/Grayed_out就是指 GUI 上的元件被停用了,沒辦法接受動作的意思
作者: mattheww (阿政)   2014-06-26 22:43:00
看了一下grayed out(disable)就是我希望達到的動作!
作者: LiloHuang (十年一刻)   2014-06-26 22:45:00
我在 Windows 上確定該方法可行,Linux 我假日再測看看
作者: mattheww (阿政)   2014-06-26 22:46:00
我再研究看看,有板友知道的話,還請各位不吝請教,謝謝!再次感謝LiloHuang大,揪感心><賜
作者: LiloHuang (十年一刻)   2014-06-28 01:12:00
剛才我在CentOS 6.5 + perl-Tk-804.028-2.el6.rf.x86_64使用以下的程式碼測試之後發現,放大縮小的按鈕會不見而不是跟 Windows 平台一樣有 grayed-out 的效果$mw = new MainWindow(); $mw->resizable(0, 0);我猜 Linux + GNOME 本身的視窗就沒有把放大縮小 gray的具體實現,因此實際上就只能夠把按鈕弄到消失吧...XD忘了講我在上述的linux環境,使用$mw->resizable(0, 0);視窗大小是無法調整的,放大縮小按鈕是直接消失而非gray
作者: mattheww (阿政)   2014-06-28 14:41:00
我的是用perl-Tk-804.27,不過我是用windows系統連學校工工作站Linux系統,不知道是不是這個原因,才造成放大縮小鈕無法直接消失或是grayed out掉
作者: LiloHuang (十年一刻)   2014-06-28 20:25:00
那你的作業系統是? 也是用GNOME嗎 XD
作者: mattheww (阿政)   2014-06-28 22:03:00
作業系統是指GNU/Linux嗎XD剛用switchdesk指令看了一下似乎沒有裝GNOME或KDE,應該是這個原因嗎
作者: LiloHuang (十年一刻)   2014-06-28 22:27:00
我想問的應該是哪一個 distribution,就像我是用 CentOS在沒有辦法複製出跟你一樣的環境狀況下我就沒有辦法進一步再幫你看這個問題哩 XDD
作者: mattheww (阿政)   2014-06-28 22:35:00
我的是CentOS 5.7請問大大指的是這個嗎(抱歉linux不太熟悉)
作者: LiloHuang (十年一刻)   2014-06-28 22:42:00
嗯嗯~ 我是裝 6.5 通常預設是 GNOME 沒錯,我再找時間測
作者: mattheww (阿政)   2014-06-28 22:51:00
嗯嗯~感謝你!
作者: LiloHuang (十年一刻)   2014-06-29 09:35:00
剛剛早上裝好 CentOS 5.7 一樣是沒有放大縮小按鈕顯示的都還算正常,也沒辦法調整視窗大小然而我是用 perl-Tk-804.028-2.el5.rf.x86_64.rpm 版本我發現原因囉! 剛裝 perl-Tk-804.027-3.2.el5.rf.x86_64立刻不正常,放大縮小的按鈕會跑出來 XD 而且也可調大小所以解決方法是升級你的 perl-Tk 版本到最新版就沒問題請來這兒抓新版 http://pkgs.repoforge.org/perl-Tk/留意一下作業系統版本以及究竟是 32bit 還 64bit舉例來說 perl-Tk-804.028-2.el5.rf.x86_64.rpm是給 CentOS 5.x 64bit 版本使用的,祈禱這次能解決囉
作者: mattheww (阿政)   2014-06-29 17:46:00
目前卡在rpm檔的安裝權限問題,正在努力排解中因為之前是從 http://ppt.cc/JUFw 直接下載.tar檔改變安裝路徑來解決權限問題。測試成功會盡快上來通知好消息XD
作者: LiloHuang (十年一刻)   2014-07-01 20:09:00
恭喜你囉 :D

Links booklink

Contact Us: admin [ a t ] ucptt.com