连接到小部件的信号,按钮::按

问题描述 投票:0回答:1

我想创建一个简单的小部件,它是一个进度条,当我们用鼠标左键单击它时,它将其值设置为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')

我如何使其起作用?

lua awesome-wm
1个回答
0
投票

事实证明,w是包含进度栏小部件的“父”小部件。所以我必须这样做[]

myFirstWidget:connect_signal("button::press", function(w)
    local children = w:get_all_children()
    children[1].value = 1;
end)

因此,基本上,我检索了所有子窗口小部件的表,然后使用[1]引用表中的第一个窗口小部件,然后为其属性分配一个值

© www.soinside.com 2019 - 2024. All rights reserved.