Метры / меры не обновляются автоматически
Я создал виджет, который должен сообщать мне, какой процент моей смены завершен, но он не обновляется автоматически, поэтому, если мне нужно текущее значение, мне нужно вручную обновить скин. Как я могу сделать это автообновление?
Я попытался установить Update = вручную, добавив OnUpdateAction и [!Redraw] и кучу других вещей, которые, к сожалению, я не сохранил, поскольку они не работали, поэтому теперь я не могу их запомнить. (В приведенном ниже коде пропущены метаданные, координаты xy и нерелевантные переменные и значения, не относящиеся к этому вопросу, такие как настройки шрифта.)
[Rainmeter]
MiddleMouseDownAction=[!WriteKeyValue Variables OffWorkTime1 #OffWorkTime2#][!WriteKeyValue Variables OffWorkTime2 #OffWorkTime3#][!WriteKeyValue Variables OffWorkTime3 #OffWorkTime4#][!WriteKeyValue Variables OffWorkTime4 #OffWorkTime5#][!WriteKeyValue Variables OffWorkTime5 #OffWorkTime1#][!Refresh]
OnUpdateAction=[!UpdateMeasure MeasurePercElaps][!UpdateMeter MeterPercentDisplay][!WriteKeyValue Variables OffWorkTime1 #OffWorkTime1#][!WriteKeyValue Variables OffWorkTime2 #OffWorkTime2#][!WriteKeyValue Variables OffWorkTime3 #OffWorkTime3#][!WriteKeyValue Variables OffWorkTime4 #OffWorkTime4#][!WriteKeyValue Variables OffWorkTime5 #OffWorkTime5#][!Redraw]
LeftMouseDownAction=[!UpdateMeasure MeasurePercElaps][!UpdateMeter MeterPercentDisplay][!Redraw]
Update=200
[Variables]
OffWorkTime1=870
OffWorkTime2=900
OffWorkTime3=990
OffWorkTime4=1140
OffWorkTime5=1260
HR=[MeasureHour]
MN=[MeasureMin]
PElaps=[MeasurePercElaps:0%]
;MEASURES===================
[MeasureHour]
measure=time
format=%H
[MeasureMin]
measure=time
format=%M
[MeasurePercElaps]
measure=calc
formula=(((540 - (#OffWorkTime1# - ((#HR# * 60) + #MN#))) / 540) * 100)
MinValue=0
MaxValue=100
;METERS===================
[MeterBarPercent]
meter=bar
MeasureName=MeasurePercElaps
W=201
h=23
ValueRemainder=100
BarColor=84,165,196,255
BarOrientation=Horizontal
DynamicVariables=1
[MeterPercentDisplay]
meter=string
MeasureName=MeasurePercElaps
AntiAlias=1
NumOfDecimals=1
DynamicVariables=1
Postfix=% COMPLETE
Он должен автоматически обновляться при каждом цикле обновления, но вместо этого я могу обновить его только при обновлении отображаемых значений вручную. Он дает правильное значение при обновлении, поэтому я знаю, что формулы не являются ошибочными, но по какой-то причине он не обновляется автоматически. LeftMouseDownAction= вещь, которую я вставил туда, тоже не работает. Любые ваши указатели будут очень благодарны.
~ δelta
0 ответов
Вам нужно DynamicVariables=1
по мере, [MeasurePercElaps]
чтобы он продолжал обновляться.
Следующий скрипт более или менее то, что вы пытаетесь достичь, но я просто использую формулу для расчета% секунд, оставшихся в 1 минуте для немедленного эффекта.
;MEASURES===================
[MeasureHour]
measure=Time
format=%H
[MeasureMin]
measure=Time
format=%M
[MeasureSec]
measure=Time
format=%S
[MeasurePercElaps]
measure=Calc
;formula=(((540 - (#OffWorkTime1# - ((#HR# * 60) + #MN#))) / 540) * 100)
formula=((60.0-[MeasureSec])/60.0)*100.0
MinValue=0
MaxValue=100
DynamicVariables=1
[MeterBarPercent]
meter=Bar
MeasureName=MeasurePercElaps
AntiAlias=1
FontFace=#FontFace#
FontSize=12
SolidColor=47,47,47,255
StringAlign=Left
X=0
Y=0
W=190
H=20
ValueRemainder=100
BarColor=84,165,196,255
BarOrientation=Horizontal
DynamicVariables=1
[MeterPercentDisplay]
meter=String
MeasureName=MeasurePercElaps
AntiAlias=1
FontFace=#FontFace#
FontSize=12
FontColor=255,255,255,255
StringAlign=Left
X=0
Y=0
W=190
AntiAlias=1
NumOfDecimals=1
Postfix=% COMPLETE
DynamicVariables=1
Барный метр должен быть как ниже:
Поскольку [MeasurePercElaps]
теперь могу обновиться сам, LeftMouseDownAction
в [Rainmeter]
больше не нужен. Если вы все еще поместите его туда, он не позволит перемещать обложку в любое место на рабочем столе, и вы не сможете открыть всплывающее меню обложки.
Вы можете сохранить OnUpdateAction
если вам нужно, чтобы ваши переменные OffWorkTime сохранялись при следующей загрузке / перезагрузке скина. Но я не вижу в этом смысла, поскольку вы сохраняете только переменные, которые всегда постоянны во время сеанса скина. Это то, что !WriteKeyValue
Взрыв делает.
С другой стороны, MiddleMouseDownAction
довольно избыточно.