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. HttpWebResponse类

    HttpWebResponse类的作用用于在客户端获取返回的响应的信息,还记得HttpResponse类吗?你是否在写B/S程序的时候,经常用到Response.Write()呢? HttpRespo ...

  2. 007.androidUI开发进阶(基础--案例) .

    1.Dialog有四种,分别是AlertDialog,ProgressDialog,DatePickerDialog,TimePickerDialog 1.1AlertDialog public cl ...

  3. 【转】 linux内核移植和驱动添加(三)

    原文网址:http://blog.chinaunix.net/uid-29589379-id-4708909.html 原文地址:linux内核移植和驱动添加(三) 作者:genehang 四,LED ...

  4. Grid++Report 报表开发工具

      Grid++Report 报表开发工具   版本 更新日期 大小 下载 说明 Grid++Repoert6.0.0.6 2015/08/08 16.0M [下载] 锐浪报表工具最新版本,新增功能说 ...

  5. Libgdx开发ios游戏

    今天亲自尝试了LibGDX如何开发ios游戏, 必须条件: 1:mac操作系统,mac下必须安装Xcode     好像ios开发必须在mac操作系统下 2:mac下安装eclipse 3:eclip ...

  6. 【转】100行代码实现最简单的基于FFMPEG+SDL的视频播放器

    FFMPEG工程浩大,可以参考的书籍又不是很多,因此很多刚学习FFMPEG的人常常感觉到无从下手.我刚接触FFMPEG的时候也感觉不知从何学起. 因此我把自己做项目过程中实现的一个非常简单的视频播放器 ...

  7. 找不到eth0,但能找到eth1的问题解决办法

    故障现象:Linux的网卡由eth0变成了eth1,如何修复?解决方案:在linux中,udev记录网络规则的脚本为:/etc/udev/rules.d/70-persistent-net.rules ...

  8. 一起talk GDB吧(第七回:GDB监视功能)

    各位看官们.大家好.上一回中我们说的是GDB改动程序执行环境的功能.而且说了怎样使用GDB改动变量 的值.这一回中.我们继续介绍GDB的调试功能:监视功能.当然了,我们也会介绍怎样使用GDB的监视功 ...

  9. 解决 jsp:include 引用文件时出现乱码的问题

    阐述问题前,先来看一下下面这张图片左侧iframe中的乱码页面: 这个就是让我纠结好一阵子的乱码截图: 这个乱码页面中是使用了<jsp:include>引用标签后出现了这个问题: 源码截图 ...

  10. RMAN数据库恢复之恢复表空间和数据文件

    执行表空间或数据文件恢复时,数据库既可以是MOUNT状态,也可以是OPEN状态.1.恢复表空间在执行恢复之前,如果被操作的表空间未处理OFFLINE状态,必须首先通过ALTER TABLESPACE… ...