[问题] 关于使用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