Chapter 13. Miscellaneous PerlTk Methods  PerlTk 方法杂项:

到目前为止,这本书的大部分章节 集中在特定的几个部件, 这个章节覆盖了方法和子程序 可以被任何部件调用。

你可能从来不需要那些方法, 但有一些 你会经常使用,特别是配置和cget:

大多数方法是基于Tcl winfo 命令( 窗口信息).

一般来说, 命令只是信息,

意思是你没有传入参数给它们, 你只是拿回一个值。

本章 也记录剪贴板和选择的方法用于剪切和粘贴操作 在应用之间,

关注和获取方法,和一些深奥的东西。

13.1. Managing Widgets with configure and cget   管理部件使用  configure and cget

每个部件包含在Perl/Tk 发布版本, 以及所有用户贡献的部件,

可以使用配置和get 方法, set,change,和查询部件熟悉。

无论什么部件, 那些函数参数的格式是相同的, 传回结果具有相同的格式。

配置方法允许你指定或者改变 部件选项的值, 它可以用于检索选择的当前值。

cget  方法不能复制 但是用简单的语法检索相比配置:

13.1.1. The configure Method  配置方法:

$widget->configure( [ option => newvalue, ... ] );

依赖参数传递给它,  配置方法可以做三件事:

1.设置或者改变部件选项的值

2.得到部件任何选项当前的值

3.得到部件当前所有选择的值

设置或者改变一个选项的值,发送选项对

$widget->configure(-option => newvalue);

无论 选项的效果会立即生效,查看一个单独选项当前值,

把它作为参数发送。

返回的值 依赖 是否配置被调用在列表上下文 或者文本上下文。

第2行,配置是被调用在列表上下文( 因为它的返回值是被分配给了一个数组)

@info = $widget->configure(-highlightthickness);

在一个列表环境, 标量的数组被返回:

13.2. Building a Family Tree  创建一个Family 树:

下面的方法处理祖宗和孩子 ,他们如何被创建:

children, name, PathName, parent, toplevel, manager, and class.

那些方法 返回一个部件的引用或者一个字符串,一个字符串是 一个部件的Tcl-like 名字。

Tcl使用字符串路径名到引用部件,   使用句号作为路径分隔.

在Tcl里,主窗口总是".".   从那时起,程序的工作命名部件 反映了应用的部件层次结构。

所以, .frame 可能引用到第一个Frame 部件创建作为MainWindow的一个child.

.frame1 可能指向第2个。程序可能调用第一个按钮 在第一个Frame一样。

.frame.quit_button,这是完全限定路径名字。

Perl/Tk程序员, 我们很少明确指定一个路径名字给我们的部件,

但是pTk代表我们这样做, 现在你知道发生了什么当你看到字符路径名字。

13.10. Widget Position 部件的位置:

本节中的方法处理一个部件的位置:

13.10.1  位置相对于Root窗口:

以确定哪些部件在point(x,y), 使用包含的方法:

$which = $widget->containing($x, $y);

The $x and $y coordinates must be relative to the root window (or on a Microsoft Windows system, the desktop). An empty string is returned if there is no widget found at those coordinates. If there 

are several widgets located at those coordinates, the one closest to the front is returned.

$x 和$y 协调必须是相对于root窗口(或者 在一个Microsoft Windows system,桌面)

一个空的字符串被返回 如果这里没有部件被找到在,

13.10.2. Coordinates Relative to the Parent  坐标相对于Parent:

你可以得到左上角的坐标通过使用x和y 方法,他们的坐标 ,他们返回一个坐标 相对于 父部件:

$x = $widget->x;
$y = $widget->y; 13.10.3 坐标相对于 Root窗口: 得到相对于root窗口的坐标,使用rootx 和rooty : $x = $widget->rootx;
$y = $widget->rooty; 坐标指的是左上角的小部件: 13.10.4. Virtual Desktop Coordinates

Chapter 13. Miscellaneous PerlTk Methods PerlTk 方法杂项:的更多相关文章

  1. Think Python - Chapter 17 - Classes and methods

    17.1 Object-oriented featuresPython is an object-oriented programming language, which means that it ...

  2. 【概率论】1-3:组合(Combinatorial Methods)

    title: [概率论]1-3:组合(Combinatorial Methods) categories: Mathematic Probability keywords: Combination 组 ...

  3. MySQL-5.6.13免安装版配置方法

    MySQL-5.6.13免安装版配置方法   1. 下载MySQL Community Server 5.6.13 2. 解压MySQL压缩包    将以下载的MySQL压缩包解压到自定义目录下,我的 ...

  4. Effective Java 第三版——13. 谨慎地重写 clone 方法

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...

  5. OSError:[Errno 13] Permission denied:'my_library' 问题解决方法

    出现问题: 执行 rosrun rosserial_windows make_libraries.py my_library 命令时出现OSError:[Errno 13] Permission de ...

  6. 零元学Expression Blend 4 - Chapter 13 用实例了解布局容器系列-「Pathlistbox」I

    原文:零元学Expression Blend 4 - Chapter 13 用实例了解布局容器系列-「Pathlistbox」I 本系列将教大家以实做案例认识Blend 4 的布局容器,此章介绍的布局 ...

  7. macOS 10.13允许任何来源开启方法

    软件下载网站: http://www.pc6.com/ 软件安装问题: macOS 10.13允许任何来源开启方法: 如果需要恢复允许“任何来源”的选项,即关闭系统的Gatekeeper,我们可以在“ ...

  8. Java系列,《Java核心技术 卷1》,chapter 13,集合

    13.1.2 Java类库中的集合接口和迭代器接口     删除元素,对于next和remove的调用是互相依赖的,如果调用remove之前没有调用next,则会跑出IllegalStateExcep ...

  9. ubuntu 13.04 root权限设置方法详解

    很多朋友安装升级Ubuntu 13.04之后不知道ubuntu 13.04 root权限设置的具体方法,今天这篇文章就将为大家详细介绍设置root权限的步骤,新手朋友可以来看一看哦~ Ubunto 1 ...

随机推荐

  1. springMVC+ freemark多视图配置

    <!--通用视图解析器--> <bean id="viewResolverCommon" class="org.springframework.web. ...

  2. unzip解压中文文件名乱码

    由于中文的Windows使用的是GBK编码,而Linux默认使用UTF-8编码的,如果在Windows打包带中文文件的zip包,则这个zip包在Linux下面使用默认的归档管理器打开这个zip包的时候 ...

  3. Application.HookMainWindow完全替代了原来的窗口过程(但是好像也会继续传递)

    unit HookMain; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialo ...

  4. arcgis api for silverlight使用google map等多个在线地图

    原文 http://blog.csdn.net/leesmn/article/details/6820245 无可否认,google map实在是很漂亮.可惜对于使用arcgis api for si ...

  5. 【转】高通平台android 环境配置编译及开发经验总结

    原文网址:http://blog.csdn.net/dongwuming/article/details/12784535 1.高通平台android开发总结 1.1 搭建高通平台环境开发环境 在高通 ...

  6. openstack vm image

    1,openstack 基于iso生成镜像

  7. java中a++与++a区别

    java中a++与++a区别 a++与++a的区别,如果单独使用没有任何区别,如果在运算中就有区别了,a++是先运算在赋值,而++a是先赋值在运算!! 先看a++的代码哦 class demo1 { ...

  8. Android 的权限设置大全

    android.permission.ACCESS_CHECKIN_PROPERTIES //同意读写訪问"properties"表在checkin数据库中.改值可以改动上传 an ...

  9. rhel5.8安装mysql测试

    MySQL-rhel5.8 安装:在Linux下安装MySQL有三种方式:第一种以rpm的二进制文件分个安装,第二种是自己编译源码后安装,最后一种是以二进制tar.gz文件来安装(这种安装方式下载安装 ...

  10. 实现接口IDisposable的示例

    想使用using(...), 如: using (Getter process = new Getter()) { //... } 就必须给类实现接口IDisposable public sealed ...