带Lua的二进制时钟,如何去除非';你没用过吗?

带Lua的二进制时钟,如何去除非';你没用过吗?,lua,Lua,我从这个(v1.5.*版的)抓取了以下二进制时钟,用于: 首先,如果Lua中默认不存在某些内容,那是因为它将用于awesome的配置文件中。:) 好的,实际上我需要的是一些指导。我目前对Lua不是很熟悉,所以我只需要一些指导,这样我就可以学习了。:) 首先,这段代码输出一个普通的二进制时钟,但每列有4个点(44,44,44),而不是像普通二进制时钟那样设置23,34,34个点。在这段代码中,是什么控制了它?这样我就可以用它来支付 接下来,什么控制颜色?现在它的背景是灰色的,而且是深绿色的,我想把

我从这个(v1.5.*版的)抓取了以下二进制时钟,用于:

首先,如果Lua中默认不存在某些内容,那是因为它将用于awesome的配置文件中。:)

好的,实际上我需要的是一些指导。我目前对Lua不是很熟悉,所以我只需要一些指导,这样我就可以学习了。:)

首先,这段代码输出一个普通的二进制时钟,但每列有4个点(44,44,44),而不是像普通二进制时钟那样设置23,34,34个点。在这段代码中,是什么控制了它?这样我就可以用它来支付

接下来,什么控制颜色?现在它的背景是灰色的,而且是深绿色的,我想把它们都亮起来

什么控制平滑?现在它正在输出圆,我想看看它输出正方形是什么样子

这就是我需要帮助的全部内容,如果您能为我提供所需的代码和一些文档,那就足够了。:)

另外,如果有人愿意添加一些评论,那也太棒了。不需要非常详细的评论,但至少可以让你了解每件事的作用

编辑:


找到了改变颜色的因素,所以找到了答案。第一个变量都不能控制它是正方形还是圆形。顺便说一句:)

draw\u point函数绘制点


draw函数中的两个循环创建输出,并且是列的来源。要进行23/34/34布局,您需要修改内环,根据我认为是外环的计数器跳过前X个点。

draw\u point函数绘制点


draw函数中的两个循环创建输出,并且是列的来源。要进行23/34/34布局,您需要修改内循环,根据我认为的外循环计数器跳过前X点。

OK。几个小时后,我终于猜到是那两行。哈哈。但是在观察了几分钟之后,我发现我不知道该怎么做。哈哈,我需要知道代码的其余部分才能实现这个目标,不是吗?也许有一点提示,我需要如何修改它?再说一次,我是个十足的Lua新手。:)事实上,如果你能把你说的话翻译成代码,那就太完美了好啊几个小时后,我终于猜到是那两行。哈哈。但是在观察了几分钟之后,我发现我不知道该怎么做。哈哈,我需要知道代码的其余部分才能实现这个目标,不是吗?也许有一点提示,我需要如何修改它?再说一次,我是个十足的Lua新手。:)事实上,如果你能把你说的话翻译成代码,那就太完美了
binClock = wibox.widget.base.make_widget()
binClock.radius = 1.5
binClock.shift = 1.8
binClock.farShift = 2
binClock.border = 1
binClock.lineWidth = 1
binClock.colorActive = beautiful.bg_focus 

binClock.fit = function(binClock, width, height)
    local size = math.min(width, height)
    return 6 * 2 * binClock.radius + 5 * binClock.shift + 2 * binClock.farShift + 2 * binClock.border + 2 * binClock.border, size
end

binClock.draw = function(binClock, wibox, cr, width, height)
    local curTime = os.date("*t")

    local column = {}
    table.insert(column, string.format("%04d", binClock:dec_bin(string.sub(string.format("%02d", curTime.hour), 1, 1))))
    table.insert(column, string.format("%04d", binClock:dec_bin(string.sub(string.format("%02d", curTime.hour), 2, 2))))
    table.insert(column, string.format("%04d", binClock:dec_bin(string.sub(string.format("%02d", curTime.min), 1, 1))))
    table.insert(column, string.format("%04d", binClock:dec_bin(string.sub(string.format("%02d", curTime.min), 2, 2))))
    table.insert(column, string.format("%04d", binClock:dec_bin(string.sub(string.format("%02d", curTime.sec), 1, 1))))
    table.insert(column, string.format("%04d", binClock:dec_bin(string.sub(string.format("%02d", curTime.sec), 2, 2))))

    local bigColumn = 0
    for i = 0, 5 do
        if math.floor(i / 2) > bigColumn then
            bigColumn = bigColumn + 1
        end
        for j = 0, 3 do
            if string.sub(column[i + 1], j + 1, j + 1) == "0" then 
                active = false 
            else 
                active = true 
            end 
            binClock:draw_point(cr, bigColumn, i, j, active)
        end
    end
end

binClock.dec_bin = function(binClock, inNum)
    inNum = tonumber(inNum)
    local base, enum, outNum, rem = 2, "01", "", 0
    while inNum > (base - 1) do
        inNum, rem = math.floor(inNum / base), math.fmod(inNum, base)
        outNum = string.sub(enum, rem + 1, rem + 1) .. outNum
    end
    outNum = inNum .. outNum
    return outNum
end

binClock.draw_point = function(binClock, cr, bigColumn, column, row, active)
    cr:arc(binClock.border + column * (2 * binClock.radius + binClock.shift) + bigColumn * binClock.farShift + binClock.radius,
        binClock.border + row * (2 * binClock.radius + binClock.shift) + binClock.radius, 2, 0, 2 * math.pi)
    if active then
        cr:set_source_rgba(0, 0.5, 0, 1)
    else
        cr:set_source_rgba(0.5, 0.5, 0.5, 1)
    end
    cr:fill()
end

binClocktimer = timer { timeout = 1 }
binClocktimer:connect_signal("timeout", function() binClock:emit_signal("widget::updated") end)
binClocktimer:start()