2024年4月13日发(作者:)

Rainmeter使用组概念

Rainmeter中组的划分和基本使用

Rm里面有几种类别的组,他们的出现都是为了使我们更加容易控制我们的皮肤用的,用他们

可以节约我们的很多的代码.节省了代码量,也节约了系统的资源.

下面分门别类的讲讲RM中的组,首先讲一下RM中有哪几个组类别:

组(配置组)

我还是先讲讲什么是配置(config)吧,比如你打开一个皮肤,你右击它在最上方的就是这个皮

肤的config了,一个config可以当做皮肤的父亲目录,就是上级目录的意思,就像这个 ,那么便

签final就是他的上级目录也是一个config了,我们点击这个就进入了这个文件夹,在这里面

就可以看见这个文件夹里面的资源,包括我们的皮肤文件(.ini文件)。

值得注意的是,一个config目录下面的皮肤文件如果有多个,你无法打开多个,一次只能使用

其中的一个皮肤文件,你可以通过上面的切换实现配置文件(ini文件,其实ini文件也算是一个

配置文件),实现切换皮肤显示的效果。

有人会问了,那么我想在一个config目录下面打开多个皮肤文件不行么?答案是可以的,你另

外建几个目录就是了,注意只要它的上级目录名称不同就是了.

好了这里进入正题.讲讲什么是配置组.配置组,就是将一系列配置打包成一个组,实现对于配

置的快速的控制。

由于本课程针对入门者,所以就对于这个组就写到这里,大家想深入了解可以去爱秀论坛里

面的rainmeter教程区自己看看就是.

配置文件可以分组

要将配置添加到组只需要将组的声明放到下面就可以了.另外你可能需要在皮

肤文件的[rainmeter] 节点下面添加组

可以添加任意数量的组,他们必须用竖线隔开即”|”,也可以在或者皮肤文件

的[rainmeter]部分下面指定组.

Example ():

[EnigmaSidebarSystems]

Active=0

Windowx=0

Windowy=0

Alphavalue=255

Fadeduration=250

Clickthrough=0

Saveposition=1

Snapedges=1

Keeponscreen=1

Group=Enigma | Systems

EnigmaSidebarSystems 这个配置被加入了Enigma和Systems组,你可以使用bang操作它,

详情看看这里.

Example (skin):

[Rainmeter]

Update=1000

Author=Me

Group=Enigma | Systems

这个皮肤被添加进入了Enigma 和system组,你可以使用bang操作它

2. Measure组

Measure组是多个Measure的组,定义measure组就是把多个measure分配到一个组里面,

目的是为了方便控制这些measure,定义方式下面讲讲:

在你的皮肤文件的相应的类别为measure的节点下面写上group=xxx就是了,xxx是你定义

的组的名称

Meter组是多个meter的组,定义meter组就是把多个meter分配到一个组里面,目的是为了

方便控制这些meter,定义方式下面和上面的measure组定义方式一致.

组概念的使用

从上面你可以发现,所有的组的定义都很简单.格式是.group=组名称1|组名称2… 上面也大

致都说明了同一个点,就是定义组是为了方便控制用的.那么怎么定义组之后控制它就是我

们要考虑的问题了.

组的控制一般是利用和组概念相关的Bang进行控制的.什么是BANG?说说我的理解

吧. !bang是Rainmeter中用到的各种指令,在其他的一些美化工具里面也有bang的概念,不

知道是不谋而合,还是规定使然,比如litestep里面就有bang的概念.为什么叫bang?这个无从

考证,不过我的理解是前面不是有个感叹号!么,bang在英文里面的意思是爆炸或者惊奇的意

思,这个和感叹不谋而合,通过RM和litestep中使用!bang可以让你的桌面变得让人惊叹。

Bang的类别很多大家自己去看看rm手册看看就是,不过新手不推荐查看.本节课只介绍几个

简单的bang:

1.!showmetergroup 显示一组meter

2.!togglemetergroup 切换一组meter的显示

3.!redraw强制重绘窗口.这个同时也会更新所有的meter

上面只是一些简要的描述,更多格式和描述去查看手册吧.

在老版本的rainmeter里面bang的!后面要先写上rainmeter,比如!hidemeter以前就

是!rainmeterhidemeter.现在的话不必这样了.不过你这样写也是没有错误的.

Meter组的定义和使用

比如meter1,meter2,它们要划分在一个组,组名称是string,那么如下:

[meter1]

Meter=…

Group=string…

…..

[meter2]

Meter=…

Group=string…

…..

如上就可以了.如果你要给一个meter划分多个组,那么使用”|”这个管道符合分隔开就是

了.比如group=string|string2

利用!bang操作meter组

当组定义好了之后就可以使用!bang对它们进行操作了.操作方式很简单.

比如说我们要隐藏meter1,meter2,因为他们都是划分在string这个组里面的,那么久可以这

么写,你可以在任意一个触发器后面下面写上[hidemetergroup string]就是了,如果你像使得

你的窗口更新速率加快,比如你想在你触发一个动作之后就立即展现触发后的效果,在这里

就是立即隐藏string组里面的meter,那么可以在后面加上[!redraw],那么就是

[!hidemetergroup string][!redraw]了,是不是很简单呢?

一个小例子

[rainmeter]

Backgroundmode=2

[demo]

Meter=string

Text=”demo”

Group=string

[demo2]

Meter=string

Text=”demo2”

Y=20r

Group=string

[demo3]

Meter=string

Text=”demo3”

Y=20r

Leftmouseupaction=[!togglemetergroup string][!redraw]

上面的代码你可以优化一下比如:

[rainmeter]

Backgroundmode=2

[stringtype]

Group= string

[demo]

Meter=string

Meterstyle= string

Text=”demo”

[demo2]

Meter=string

Text=”demo2”

Y=20r

Meterstyle= string

[demo3]

Meter=string

Text=”demo3”

Y=20r

Leftmouseupaction=[!togglemetergroup string][!redraw]

不过你要注意的一点就是,组不能重复定义

比如:

你定义了两个样式

[stringtype1]

Group=1

[stringtype2]

Group=2

之后demo里面同时使用这两个样式

[demo]

Meter=string

Meterstyle=stringtype1|stringtype2

在这个例子里面你其实demo只属于一个组,就是”2”这个组,前面的样式表stringtype2的

其他属性虽然会被加载但是呢.组定义的这个属性被覆盖,总结就是使用多个样式表的时候,

如果样式表里面有相同的属性那么后面继承的样式表的属性定义优先级高一些.

最后说明一下的是,你通过使用组,样式表和变量可以让你的代码更加简化和规范.这个就要

靠个人积累了.