【问题求助】怎样获得计算后的Variable值
rainmeter吧
全部回复
仅看楼主
level 9
Z_叶绿体 楼主
刚刚入坑Rainmeter,沉浸在改造桌面中完全停不下来[乖]
看了几个别人写的控件,按个人喜好自己改了改,迈过了入门关,想写一点进阶的功能,但是今天遇到了几个搞不太懂的问题,想请教一下吧中大神:
第一个:我想写一个Monitor控件用于监控Cpu、Ram等资源的使用情况,如图
为了方便修改宽度,我把这个控件整体的宽度设成了一个名为Width的Variable,然后按其他高级编程语言的写法,每个子控件的宽度应该是Width/2,可实际上W=
#Width#
/2并不好使[阴险]
查手册也没有查到解决办法,所以来吧里问问大神们应该怎么写呀[乖]
第二个:我写了一个时间+dock的控件,效果是在时间上单击左键显示dock,左键再点一下时间隐藏dock。现在我想在dock中实现一个回收站应用,回收站空显示空的icon,有东西显示满的icon。
然后问题就来了[阴险],因为我的dock是一个group,每个icon用一个Image显示,默认Hidden=1。显示/隐藏dock用的是ToggleMeterGroup,这样的话回收站空和满该怎样切换呢[乖]一时没有什么好的想法,也想请教一下吧里的各位大神,谢谢啦~
最后附一张桌面的效果图~~折腾了一天,感觉现在的桌面超级炫[笑眼]
2018年12月31日 13点12分 1
level 9
Z_叶绿体 楼主
附上Time&Dock的代码,方便各位大神参阅[乖][Variables]
@Include=#@#Variables.ini
[Rainmeter]
Update=1000
[Metadata]
Author=chloroplastYu
Name=Time+Date+Dock
Information=Changed2018.12.31
Version=V1.1
;-------------------------------------------------------------
;-------------------------------------------------------------
[mTime]
Measure=Time
Format=%H:%M
[mDate]
Measure=Time
Format=%Y-%
#m-%#
d %a.
[mSecond]
Measure=Time
Format=%#S
MinValue=0
MaxValue=60
[MeterTime]
Meter=String
MeasureName=mTime
x=355
y=0
FontSize=100
FontFace=#Font#
FontColor=#ColorBasic#
SolidColor=0,0,0,1
StringAlign=Center
AntiAlias=1
LeftMouseDownAction=[!ToggleMeterGroup App][!ToggleMeter MeterDate][!Redraw]
[MeterDate]
Meter=String
MeasureName=mDate
x=0r
y=155r
FontSize=20
FontFace=#Font#
FontColor=#ColorBasic#
SolidColor=0,0,0,1
StringAlign=Center
AntiAlias=1
[MeterSecond]
Meter=Bar
MeasureName=mSecond
x=210
y=0r
w=300
h=3
BarColor=#ColorSec#
SolidColor=#ColorBasic#
BarOrientation=Horizontal
[MeterSecond2]
Meter=Bar
MeasureName=mSecond
x=200
y=0r
w=300
h=3
BarColor=#ColorBasic#
SolidColor=0,0,0,1
BarOrientation=Horizontal
;-------------------------------------------------------------
;-------------------------------------------------------------
[Line1]
Meter=Image
Group=App
Hidden=1
w=710
h=3
x=0
y=155
SolidColor=#ColorBasic#
[BackImage]
Meter=Image
Group=App
Hidden=1
w=710
h=50
x=0
y=160
SolidColor=#ColorBG#,80
[App1]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=0
y=160
ButtonCommand=!Execute[#path1#]
[Icon1]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon1#
x=10r
y=10r
w=30
h=30
[App2]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=60
y=160
ButtonCommand=!Execute[#path2#]
[Icon2]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon2#
x=5r
y=5r
w=40
h=40
[App3]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=120
y=160
ButtonCommand=!Execute[#path3#]
[Icon3]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon3#
x=10r
y=10r
w=30
h=30
[App4]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=180
y=160
ButtonCommand=!Execute[#path4#]
[Icon4]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon4#
x=10r
y=10r
w=30
h=30
[App5]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=240
y=160
ButtonCommand=!Execute[#path5#]
[Icon5]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon5#
x=10r
y=10r
w=30
h=30
[App6]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=300
y=160
ButtonCommand=!Execute[#path6#]
[Icon6]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon6#
x=17r
y=11r
w=20
h=28
[App7]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=360
y=160
ButtonCommand=!Execute[#path7#]
[Icon7]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon7#
x=10r
y=10r
w=30
h=30
[App8]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=420
y=160
ButtonCommand=!Execute[#path8#]
[Icon8]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon8#
x=10r
y=10r
w=30
h=30
[App9]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=480
y=160
ButtonCommand=!Execute[#path9#]
[Icon9]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon9#
x=10r
y=10r
w=30
h=30
[App10]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=540
y=160
ButtonCommand=!Execute[#path10#]
[Icon10]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon10#
x=10r
y=10r
w=30
h=30
[App11]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=600
y=160
ButtonCommand=!Execute[#path11#]
[Icon11]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#icon11#
x=10r
y=10r
w=30
h=30
[App12]
Group=App
Hidden=1
Meter=Button
ButtonImage=#button#
ImageTint=#ColorBasic#
x=660
y=160
ButtonCommand=!Execute[#path12#]
[Icon12]
Group=App
Meter=Image
ImageTint=#ColorBasic#
Hidden=1
ImageName=#iconEmpty#
x=10r
y=10r
w=30
h=30
2018年12月31日 13点12分 2
level 9
Z_叶绿体 楼主
[阴险]妈的第一个问题懂了,加个括号就完事了
2018年12月31日 13点12分 3
吧务
level 14
第一个问题的实质是,你要输出的是计算后的值,所以需要加个括号表示里边是公式
至于第二个问题,你现在可能对bang指令的了解仅止于!ShowMeter和!HideMeter以及对应的组指令吧?
实际上!SetOption这个指令更常用,更好用
2018年12月31日 17点12分 4
吧务
level 14
顺便讲一下你的代码中的细节问题
1,猜测你可能是根据小白福音贴或者拆解其他代码来学习的,所以代码中仍存在部分废弃指令(如!execute)
建议于置顶导航帖下载《RM中文手册第四版》.pdf,并阅读这份手册以获得更好的学习效果。(建议至少看完使用手册/基础教程部分,内含Launcher,System,Clock三节)
2,DOCK皮肤部分,
首先,我个人不建议使用button类型,因为button类型需要三帧图,在用户更换图标的时候三帧图很难找,建议直接用Image类。
其次,不建议使用button类meter独有的ButtonCommand命令,而建议普遍采用鼠标动作的LeftMouseUpAction,因为ButtonCommand有些讲究,不好用,具体差别你可以看手册。
最后,写法不建议写=[
#变量#
]
而建议写为=["
#变量#
"]
因为当变量中用户路径中带有空格的时候,不带双引号的写法会出错。
2018年12月31日 17点12分 5
吧务
level 14
最后,关于!SetOption,
这条指令用于更改meter或measure的选项值。
你回收站空和满状态如果用两个meter,然后来回show和hide的话,会与本身的伸缩有影响,造成逻辑bug,所以建议用!SetOption。直接把回收站写为同一个meter中,获取回收站状态后!SetOption更改回收站meter的ImageName选项(或ButtonImage选项,如果你用的是button类的话)。然后!UpdateMeter回收站的meter,!Redraw。即可
顺便,如果你嫌弃Image类节点当鼠标悬浮时没有状态变化,显得皮肤单调,也可以利用鼠标动作MouseOverAction和MouseLeaveAction,来写鼠标悬浮于此meter和离开此meter时执行的指令。指令可以用!SetOption改当前meter的横纵坐标和大小,以达到效果
2018年12月31日 17点12分 6
吧务
level 14
如果有什么问题,欢迎来吧群提问(虽然最近两周我要考试没法帮你了),群号在置顶导航贴中
2018年12月31日 17点12分 7
[哈哈]哇!!!感谢小吧大人如此详尽以及富有建设性的解答!!刚刚又改了一个插件,准备睡觉啦!明早起来加群[欢呼]
2018年12月31日 18点12分
[啊]置顶帖里的群号搜不到呀,是7750558吗?
2019年01月01日 03点01分
@Z_叶绿体 是,搜不到吗
2019年01月01日 05点01分
@🌸雪月花 [啊]搜不到啊,只能搜到一个江苏的大姐姐
2019年01月01日 05点01分
吧务
level 14
第一个问题我来回答你,你少加了括号,在Rainmeter中,除了Cale类型的Measure里面的公式可以不加括号,其余公式必须都要加上括号,例如W=(
#Width/2#
)
2019年01月01日 02点01分 8
8楼发错了,应该是W=(
#Width#
/2)
2019年01月01日 02点01分
吧务
level 14
回收站那个也好解决,不要放到组里,用单独的指令控制两个回收站图片
2019年01月01日 02点01分 9
[吐舌]感谢老哥
2019年01月01日 03点01分
1