📄 00000008.htm
字号:
<HTML><HEAD> <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>寄信人: <<A HREF="mailto:bbs@captain.net.tsinghua.edu.cn>">bbs@captain.net.tsinghua.edu.cn></A> <BR>标 题: 5 -- Alex 整理 <BR>发信站: 华南理工大学 BBS木棉站 <BR>日 期: Tue Aug 20 08:34:18 1996 <BR> <BR> xedit.vpaned.row1.Help.background:navy <BR> <BR>是一个完整的规格但是将只影响到命名当中的物件名称的属性。(本例中, <BR>尽管事实上是大写的,"Help"是一个成员名称,它的类别是"Command" 。) <BR> <BR> 除非你有一些非常特别的需求,最好不要用句点当分隔号,尽量以星号代 <BR>替,如此可减少错误发生的可能,而且在重写应用程式时,比较不会受到阶层 <BR>结构改变的影响。 <BR> <BR> 上述的对应结构解释了为什麽你可以输入奇怪的规格,或者resource <BR>和属性尚未定义:意即一个规格只有当应用程式查询资料库才会附著,甚至范 <BR>围的意义也是不足道的 -- 规格对应或不对应到查询。 <BR> <BR> <BR>15.3.4 当多种Resorce规格对应的居先(precedence) 规则 <BR> <BR> 我们现在有一个非常弹性的方法来指定应用程式的resource,但正因它太 <BR>笼统,以致当一个应用程式查询resources 资料库时常常有数种规格与之对应, <BR>如何解决呢? <BR> <BR> 简单地说,如果同时有超过一个规格对应,则最具体的(specific)一个会 <BR>被使用,Resource Manager有一组的居先规则用来决定是否一个规格较另一个 <BR>具体。 <BR> <BR> .使用句号为分隔号较使用星号为具体,例如:*Command.Foreground 较 <BR> *Command*Foreground 为具体。 <BR> <BR> .成员名称较类别名称具体,例如:*foreground 较*Foreground 具体。 <BR> <BR> .指定一个元素较省略它具体,例如:xmh*command*foreground较 <BR> xmh*foreground具体。 <BR> <BR> .元素靠近规格左边的星号较靠近右边的具体,例如:xmh*foreground较 <BR> *command*foreground具体。 <BR> <BR> 这些规则相当直接,它们大部份可用另一种方法来说明:”如果一个规格 <BR>对应到另一个规格而为其子集合者,则前者较後者具体。” <BR> <BR> <BR>15.3.5 在Toolkit 程式中应用程式Resource <BR> <BR> 通常一个应用程式使用Resource Manager来定义程式阶层中widget的属性 <BR>预设值,但有时需要有和widget不直接相关的设定预设值(或传值)的能力。 <BR> <BR> 为了达到这点,Toolkit 提供了一个叫做Application Resource的设施, <BR>它和非Toolkit 预设的外表原则相同 -- 应用程式定义了它本身选择的属性。 <BR>类别名称也相同,所以事实上这些属性和一般常见的阶层没有什麽不同。 <BR> <BR> xman使用到一点这个设施,它让你能在求助视窗(help window) 指定不同 <BR>的本文档案,是否在主选择视窗中指定一个你要的视窗,或当程式启动时直接 <BR>进入一个指南页等。(查看指南页,在X Default那一节,它会明确地列出它 <BR>的”应用程式特定的resources ”)。 <BR> <BR> <BR> <BR>15.3.6 Resource和non-toolkit 应用程式 <BR> <BR> 并非所有的程式均使用Toolkit ,但Toolkit 几乎掌握了所有对一个应用 <BR>程式的resource管理,特别是应用程式的widget结构定义了物件和子物件的阶 <BR>层,并能适当地查询Resource Manager。但是non-Toolkit 应用程式要如何使 <BR>用Resource Manager? <BR> <BR> 答案是应用程式只需明确地查询每一个它有兴趣的属性。稍早我们曾说过 <BR>Resource Manager对resource无限制,因此应用程式能使用任何它想要的属性 <BR>名称,只要程式的文件告诉使用者它们在何处,它们就如同其它的应用程式一 <BR>样。 <BR> <BR> xcalc 应用程式是一个不使用Toolkit 的程式范例,它也利用上述方式掌 <BR>握resource规格。 <BR> <BR> 有几点需要注意: <BR> <BR> .此种型态的预设值没有类别。 <BR> <BR> .程式以类似类别名称(也就是说,第一个字母大写)来定义属性,例如 <BR> xcalc 使用Background, Foreground, BorderWidth 等等。 <BR> <BR> .如果大小写错误,你的规格不会工作,例如:规格 <BR> <BR> xcalc.foreground:green <BR> <BR> 会被xcalc 忽略。 <BR> <BR> .即使这个程式定义的属性并非阶层的一部份,你仍能使用星号当分隔号, <BR> 例如: <BR> <BR> xcalc*Foreground:orange <BR> <BR> <BR> <BR>15.4 Resources 的型态----如何指定值 <BR> <BR> 直到现在我们仍然只看resource规格的”左半边”,而忽略了值(value) <BR>的部份,或只是用色彩名称。现在,我们来看一看”右半边”(值的部份)。 <BR> <BR> 简单地说,值只是一个传递到应用程式的本文字串,和Resource Manager <BR>完全相关,之後,应用程式以此值做它所要做的事。当然,在实际的操作上, <BR>应用程式必须明确地做某些事,而Toolkit 的确也掌握了大多数这一部份的工 <BR>作,所以你可获得一致地介面。 <BR> <BR> 所以当我们以一个Resource值传递我们所需时,实际上我们使用少数的型 <BR>态,你已看过它们的大部份,你在任何地方均可以resource规格来使用它们: <BR> <BR> Colours (色彩):我们已广泛的使用过它们----毋需多做解释。 <BR> <BR> Fonts (字型):在一般的方法我们已描述过,在resource规格,你也 <BR>可使用通用字元或全名。例如: <BR> <BR> *Font: *-courier-medium-r-*-140-* <BR> xterm*Font: 8*13 <BR> xterm*boldFont: 8*13 <BR> demo*font: *-courier-medium-r-*-240-* <BR> demo*boldFont: *-courier-bold-r-*-240-* <BR> <BR>设定一个整体性的预设字型,但使用一个正常的xterm 指定一个明确的一对字 <BR>型,和一对被demo应用程式使用的较大的字型。(可用xterm -name demo) <BR> <BR> Numeric quantities:在不同的情形,例如: <BR> <BR> xclock*update:30 <BR> xclock*update:60 <BR> BorderWidth:10 <BR> xlogo*Width:120 <BR> xterm*saveLines:200 <BR> <BR> Boolean values:指定"yes" 或"no",你可以使用"yes" 、"on"、"true" <BR>和"no"、"off" 、"false" ,例如: <BR> <BR> xterm*scrollBar:false <BR> xman*bothShown:true <BR> <BR> Cursor names:指定在/usr/include/X11/bitmaps中包含你所要的游标的 <BR>档案名称,例如: <BR> <BR> xterm*pointer Shape:cntr_ptr <BR> <BR> 注意:如果被指定的游标不包含 "热点" (hot spot),你可能得到错误讯 <BR> 息。 <BR> <BR> Geometry spec :全部或部份。 <BR> <BR> xcalc*Geometry: 180*240-0-0 <BR> xcolock*Geometry: -0+0 <BR> <BR>设定一个计算器的预设尺寸及其启始位置在右下角,时钟的启始位置在右上角。 <BR> <BR> 键盘转换(keyboard translations) :安排特定的字串给一个键,或安排 <BR>特殊(非印出)动作给键或按钮,这相当的复杂,第17章会全面专门讨论它。 <BR> <BR> Pixmaps :Pixmaps 是像位元映像纹理(texture) 一般的图样,像位元映 <BR>像或游标一样的指定它们。当你在单色萤幕上工作时非常方便,一旦为不同类 <BR>别的widget设定背景,你便能看到应用程式在何处使用到它们。例如:以下的 <BR>resource规格: <BR> <BR> *Pixmap: mensetmanu; <BR> List*backgroundPixmap: scales <BR> Box*backgroundPixmap: cntr_ptr <BR> Command*backgroundPixmap: sipb <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -