我用ruby-libappindicator要管理的绑定Ubuntu 应用程序指标。
我想指示是否有任何应用程序使用了端口 3000。端口检查不是问题,但我还需要在端口繁忙/空闲时更新指示器(我想显示绿色或红色圆圈)。
我可以创建一个这样的新指标:
require "ruby-libappindicator"
indicator = AppIndicator::AppIndicator.new("test", "indicator-messages", AppIndicator::Category::APPLICATION_STATUS)
indicator.set_menu(Gtk::Menu.new)
indicator.set_status(AppIndicator::Status::ACTIVE)
Gtk.main
但Gtk.main
调用后代码“挂起”,所以我无法调用任何其他方法。
创建后如何更新 appindicator 图标?
答案1
使用GLib 中的 g_timeout_add_seconds()定义一个定期调用的函数,并在该函数中检查indicator.set_status(...)
是否需要端口和调用。
答案2
答案3
您需要使用创建一个计时器GLib::Timeout.add_seconds
(或者只是add
想使用毫秒)
# ...
GLib::Timeout.add_seconds(2) do # every two seconds....
app_indicator.set_icon '/path/to/icon.svg'
true # returning false cancels the timer
end
Gtk.main