我想创建一个简单的小部件,它是一个进度条,当我们用鼠标左键单击它时,它将其值设置为1。
local myFirstWidget = wibox.widget {
{
value = 0.5,
color = "#ff0000",
widget = wibox.widget.progressbar,
width = 100,
forced_height = 20,
shape = gears.shape.rounded_bar,
border_width = 2,
border_color = beautiful.border_color,
ticks = true,
clip = true,
margins = {top = 5, bottom = 5},
paddings = 2
},
layout = wibox.layout.fixed.horizontal
}
myFirstWidget:connect_signal("button::press",
function(w, _, _, btn) w.value = 1 end)
当我按下指示条时,什么也没有发生。如果我使用
w.set_value(1)
然后单击栏显示错误
试图调用一个零值(字段'set_value')
我如何使其起作用?
事实证明,w
是包含进度栏小部件的“父”小部件。所以我必须这样做[]
myFirstWidget:connect_signal("button::press", function(w) local children = w:get_all_children() children[1].value = 1; end)
因此,基本上,我检索了所有子窗口小部件的表,然后使用[1]引用表中的第一个窗口小部件,然后为其属性分配一个值