我想写一个简单的gnome扩展,在顶部栏上打印文本文件中的一些文本。我设法打印了文本,但每隔60秒更新一次遇到了问题。用gjs能做到吗?
这是我想出来的:
const {St, Clutter} = imports.gi;
const Main = imports.ui.main;
const GLib = imports.gi.GLib;
let panelButton;
function init () {
// Create a Button with "Hello World" text
panelButton = new St.Bin({
style_class : "panel-button",
});
let fileContents = String(GLib.file_get_contents("path/to/myfile.txt")[1]);
let panelButtonText = new St.Label({
text : fileContents,
y_align: Clutter.ActorAlign.CENTER,
});
panelButton.set_child(panelButtonText);
}
function enable () {
// Add the button to the panel
Main.panel._centerBox.insert_child_at_index(panelButton, 2);
}
function disable () {
// Remove the added button from panel
Main.panel._centerBox.remove_child(panelButton);
}发布于 2021-07-28 11:23:52
您需要使用GLib.timeout_add_seconds()
GLib.timeout_add_seconds(GLib.PRIORITY_DEFAULT, 60, () => {
updateLabel(newText);
});顺便说一句,您可能应该使用ByteArray.toString()将从文件中获得的Uint8Array转换为字符串。
https://stackoverflow.com/questions/68534827
复制相似问题