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