cairo - 第一次在 AwesomeWM 中使用 cairo

标签 cairo awesome-wm

这适用于那些在开始使用 cairo 时遇到困难的人。

文档没有给出一个好的、完整的示例。这就是我想分享这个的原因。

最佳答案

我创建了一个具体的示例,您可以将其放入 rc.lua 中并使用它。

local wibox = require('wibox')
local cairo = require("lgi").cairo

local surface = cairo.ImageSurface(cairo.Format.RGB24,20,20)
local cr = cairo.Context(surface)

my_wbox = wibox()
my_wbox.visible = true
my_wbox:set_bg("#ff0000")

cairo_widget = wibox.widget.base.make_widget()
cairo_widget.fit = function(context, width, height) 
    return 100, 100
end
cairo_widget.draw = function(self, my_wbox, cr, width, height)
    cr:translate(100, 100)
    cr:set_source_rgb(0,0,0)
    cr:rectangle(0, 0, 100, 100)
    cr:fill()
end

my_wbox:set_widget(cairo_widget)
my_wbox:geometry({x=50, y=50, width=500, height=500})

关于cairo - 第一次在 AwesomeWM 中使用 cairo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72244147/

相关文章:

keyboard-shortcuts - AwesomeWM urxvt 通过键盘粘贴剪贴板

c - 如何用 Cairo 创建同心三角形?

c# - 如何从开罗保存 jpg

pdf-generation - 如何防止 cairo 栅格化我的图案填充?

lua - awesome wm 登录时崩溃

youtube - 在 Awesome 3.5 中最大化 youtube 视频时如何删除标题栏?

user-interface - Awesome wm 无法打开任何窗口或终端

java - 我怎样才能修复一个 Java-GUI 程序(swing),它可以与 awesome-wm 一起工作?

linux - 如何制作不捕获任何事件的叠加层

python - 添加包含 `cairo-gobject.pc' 的目录