王朝网络
分享
 
 
 

Perl/TkFAQ-19.如何实现“清屏”操作

王朝perl·作者佚名  2008-05-18
宽屏版  字体: |||超大  

原文:

19. How do I "clear the screen"?

What screen are you trying to clear?

If you are trying to clear a tty (e.g. xterm) screen then try either of the following within your script: system "clear";or print `clear`;

(where the choice between these two depends on the rest of the script: the first is fast - but proceeds via fork and may not occur at exactly the time that you want it to in the script).

David and Rachel Weintraub <davidw@cnj.digex.net> recommend using the old termcap.pl p4 library. You might also consider the perl 5 equivalents: Term.pm (especially the Term::Control module), Curses.pm, Perlmenu.pm, PV.

Returning to X-windows and perl/Tk: if you are trying to eliminate a TopLevel or a MainWindow then try: $main -> destroy;

If you would rather not destroy then try: $main->withdraw; # remove $main->deiconify; # put back

If $w is a sub-window (sub-widget) then $w->pack('forget'); # remove if packed (newer Tk-b9.01++) $w->packForget; # remove if packed (older versions) $w->pack(...); # put back

There are also ways to call low level C-ish versions: $w->UnmapWindow;

but that is for special purposes only....

If you are trying to erase an $item on a Canvas then try: delete($item);

(Thanks to the post by <a904209@pluto.tiuk.ti.com> which extended this answer considerably.)

译文:

19. 如何实现“清屏”操作?

你想要“清”的是什么屏幕呢?

如果你想清除的是一个终端(例如xterm)的屏幕,那么你可以在你的脚本中尝试下面的任何一个方法:

system “clear”;

或者

print `clear`; (译者注:这是针对Unix系统的,Windows系统下可能应该用cls吧!)

这里,对于上面两种方法的选择取决于你脚本下面的内容:第一种方法更快一些,但是它是通过fork来进行的,所以真正的执行的时间可能会不是精确的和程序调用时一致)。

David Rachel Weintraub推荐使用原来Perl4的库termcap.pl。因此你也许可以考虑使用Perl5中相应的库和函数:Term::Cap。(译者注:请使用perldoc Term::Cap来参考手册)

回到X窗口和Perl/Tk的问题来:如果你是想消除掉一个TopLevel或者是MainWindow,那么你可以使用:

$main -> destroy;

如果你并不想完全消毁它们,而只是暂时消失,那么可以用:

$main -> withdraw; #令其消失

$main -> deiconify; #重新出现

如果$w是一个子窗口(子组件),那么需要用:

$w -> packForget; #消除已pack的子组件

$w -> pack(……); #重新再pack回去

当然,也有办法来调用底层的类似C版本的函数:

$w -> UnmapWindow;

但是,这只是用于一些特殊目的而设置的……

如果你是想去除掉一个画布(Canvas)中的一个元件($item),那么可以用:

$canvas -> delete($item);

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有