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

看板Perl作者 (阿政)時間10年前 (2014/06/26 15:54), 編輯推噓14(14051)
留言65則, 2人參與, 最新討論串1/1
大家好,小弟是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

06/26 19:52, , 1F
$mw->resizable(0, 0);
06/26 19:52, 1F

06/26 20:59, , 2F
非常謝謝LiloHuang大的回覆。想請問是否有辦法按視窗右上
06/26 20:59, 2F

06/26 21:01, , 3F
角的放大/縮小都使整個視窗大小維持住原本的大小,現在卡
06/26 21:01, 3F

06/26 21:02, , 4F
在視窗的確不能上下左右拉大,但一按右上角放大之後又會
06/26 21:02, 4F

06/26 21:03, , 5F
整個版面亂掉,以上。抱歉,可能我原本意思不夠清楚,謝
06/26 21:03, 5F

06/26 21:03, , 6F
謝!
06/26 21:03, 6F

06/26 21:31, , 7F
設定(0, 0)之後應該是不能按中間那顆放大縮小了吧?
06/26 21:31, 7F

06/26 21:33, , 8F
我設定之後放大縮小的按鈕會 Disable (grayed out)
06/26 21:33, 8F

06/26 22:09, , 9F
我的中間那顆放大縮小還是可以按,不知道是不是我哪邊弄
06/26 22:09, 9F

06/26 22:09, , 10F
錯了
06/26 22:09, 10F

06/26 22:14, , 11F
我的打法是$mw = Mainwindow->new();
06/26 22:14, 11F

06/26 22:15, , 12F
$mw->geometry("400x100");
06/26 22:15, 12F

06/26 22:16, , 13F
$mw->resizable(0,0); 大概是以上這樣
06/26 22:16, 13F

06/26 22:19, , 14F
差不多,我是用 ActivePerl 5.6.1,你的直譯器版本是?
06/26 22:19, 14F

06/26 22:19, , 15F
懷疑是不同版本的 Tk 可能略有差異,我這邊是 grayed 的
06/26 22:19, 15F

06/26 22:27, , 16F
我的是寫perl,v5.8.8(在linux環境下執行)
06/26 22:27, 16F

06/26 22:32, , 17F
目前沒對應的平台可以幫你測試,假日再研究看看囉
06/26 22:32, 17F

06/26 22:32, , 18F
不好意思,請問grayed指的是?
06/26 22:32, 18F

06/26 22:33, , 19F
嗯嗯,真的很感謝LiloHuang大大的熱心幫忙!
06/26 22:33, 19F

06/26 22:34, , 20F
06/26 22:34, 20F

06/26 22:35, , 21F
就是指 GUI 上的元件被停用了,沒辦法接受動作的意思
06/26 22:35, 21F

06/26 22:43, , 22F
看了一下grayed out(disable)就是我希望達到的動作!
06/26 22:43, 22F

06/26 22:45, , 23F
我在 Windows 上確定該方法可行,Linux 我假日再測看看
06/26 22:45, 23F

06/26 22:46, , 24F
我再研究看看,有板友知道的話,還請各位不吝請教,謝謝!
06/26 22:46, 24F

06/26 22:48, , 25F
再次感謝LiloHuang大,揪感心><
06/26 22:48, 25F

06/26 23:26, , 26F
06/26 23:26, 26F

06/28 01:12, , 27F
剛才我在CentOS 6.5 + perl-Tk-804.028-2.el6.rf.x86_64
06/28 01:12, 27F

06/28 01:12, , 28F
使用以下的程式碼測試之後發現,放大縮小的按鈕會不見
06/28 01:12, 28F

06/28 01:12, , 29F
而不是跟 Windows 平台一樣有 grayed-out 的效果
06/28 01:12, 29F

06/28 01:14, , 30F
$mw = new MainWindow(); $mw->resizable(0, 0);
06/28 01:14, 30F

06/28 01:17, , 31F
我猜 Linux + GNOME 本身的視窗就沒有把放大縮小 gray
06/28 01:17, 31F

06/28 01:17, , 32F
的具體實現,因此實際上就只能夠把按鈕弄到消失吧...XD
06/28 01:17, 32F

06/28 08:09, , 33F
忘了講我在上述的linux環境,使用$mw->resizable(0, 0);
06/28 08:09, 33F

06/28 08:09, , 34F
視窗大小是無法調整的,放大縮小按鈕是直接消失而非gray
06/28 08:09, 34F

06/28 14:41, , 35F
我的是用perl-Tk-804.27,不過我是用windows系統連學校工
06/28 14:41, 35F

06/28 14:42, , 36F
工作站Linux系統,不知道是不是這個原因,才造成放大縮小
06/28 14:42, 36F

06/28 14:43, , 37F
鈕無法直接消失或是grayed out掉
06/28 14:43, 37F

06/28 20:25, , 38F
那你的作業系統是? 也是用GNOME嗎 XD
06/28 20:25, 38F

06/28 22:03, , 39F
作業系統是指GNU/Linux嗎XD
06/28 22:03, 39F

06/28 22:25, , 40F
剛用switchdesk指令看了一下似乎沒有裝GNOME或KDE,應該
06/28 22:25, 40F

06/28 22:25, , 41F
是這個原因嗎
06/28 22:25, 41F

06/28 22:27, , 42F
我想問的應該是哪一個 distribution,就像我是用 CentOS
06/28 22:27, 42F

06/28 22:28, , 43F
在沒有辦法複製出跟你一樣的環境狀況下
06/28 22:28, 43F

06/28 22:28, , 44F
我就沒有辦法進一步再幫你看這個問題哩 XDD
06/28 22:28, 44F

06/28 22:35, , 45F
我的是CentOS 5.7
06/28 22:35, 45F

06/28 22:39, , 46F
請問大大指的是這個嗎(抱歉linux不太熟悉)
06/28 22:39, 46F

06/28 22:42, , 47F
嗯嗯~ 我是裝 6.5 通常預設是 GNOME 沒錯,我再找時間測
06/28 22:42, 47F

06/28 22:51, , 48F
嗯嗯~感謝你!
06/28 22:51, 48F

06/29 09:35, , 49F
剛剛早上裝好 CentOS 5.7 一樣是沒有放大縮小按鈕
06/29 09:35, 49F

06/29 09:36, , 50F
顯示的都還算正常,也沒辦法調整視窗大小
06/29 09:36, 50F

06/29 09:40, , 51F
然而我是用 perl-Tk-804.028-2.el5.rf.x86_64.rpm 版本
06/29 09:40, 51F

06/29 09:43, , 52F
我發現原因囉! 剛裝 perl-Tk-804.027-3.2.el5.rf.x86_64
06/29 09:43, 52F

06/29 09:44, , 53F
立刻不正常,放大縮小的按鈕會跑出來 XD 而且也可調大小
06/29 09:44, 53F

06/29 09:46, , 54F
所以解決方法是升級你的 perl-Tk 版本到最新版就沒問題
06/29 09:46, 54F

06/29 09:46, , 55F
06/29 09:46, 55F

06/29 09:48, , 56F
留意一下作業系統版本以及究竟是 32bit 還 64bit
06/29 09:48, 56F

06/29 09:49, , 57F
舉例來說 perl-Tk-804.028-2.el5.rf.x86_64.rpm
06/29 09:49, 57F

06/29 09:49, , 58F
是給 CentOS 5.x 64bit 版本使用的,祈禱這次能解決囉
06/29 09:49, 58F

06/29 17:46, , 59F
目前卡在rpm檔的安裝權限問題,正在努力排解中
06/29 17:46, 59F

06/29 17:47, , 60F
因為之前是從 http://ppt.cc/JUFw 直接下載.tar檔改變安
06/29 17:47, 60F

06/29 17:48, , 61F
裝路徑來解決權限問題。測試成功會盡快上來通知好消息XD
06/29 17:48, 61F

07/01 18:57, , 62F
測試成功了!!改用perl-Tk-804.028-2.e15.rf.x86_64.rpm後
07/01 18:57, 62F

07/01 18:59, , 63F
搭配CentOS5.7,成功讓右上角放大縮小鈕消失
07/01 18:59, 63F

07/01 18:59, , 64F
再次感謝LiloHuang大的熱心幫忙!!
07/01 18:59, 64F

07/01 20:09, , 65F
恭喜你囉 :D
07/01 20:09, 65F
文章代碼(AID): #1Jgz7DhW (Perl)
文章代碼(AID): #1Jgz7DhW (Perl)