繁体   English   中英

GNOME Shell扩展按钮

[英]GNOME Shell Extension Button

我正在尝试仅使用JavaScript编写扩展。 我是通过Hello World用Pyt​​hon编写的! 码。 但是,从一开始,我的菜单项按钮仍无法正常工作。 另外,我无法在Hello World中添加菜单项! 码。 我想,我想念一些东西。

按钮代码在这里:

 const Lang = imports.lang; const Main = imports.ui.main; const PanelMenu = imports.ui.panelMenu; const PopupMenu = imports.ui.popupMenu; const St = imports.gi.St; const TimeButton = new Lang.Class({ Name: "Salah Time", Extends: PanelMenu.Button, _init: function () { let box = new St.BoxLayout({ style_class: "system-status-icon" }); let label = new St.Label({text: "Salah Time"}); box.add_child(label); this.actor.addActor(box); } }); function init() { } function enable() { let but = new TimeButton(); Main.panel._leftBox.insert_child_at_index(but, 1); } function disable() { Main.panel._leftBox.remove_child(but); } 

GJS教程不多。 我已经在尝试通过阅读其他扩展来编写内容。

谢谢。

const Lang = imports.lang;
const Main = imports.ui.main;
const PanelMenu = imports.ui.panelMenu;
const PopupMenu = imports.ui.popupMenu;
const St = imports.gi.St;

const TimeButton = new Lang.Class({
    Name: "TimeButton",
    Extends: PanelMenu.Button,

    _init: function () {
        this.parent(null, "TimeButton");

        // Icon
        this.icon = new St.Icon({
            icon_name: "appointment-symbolic",
            style_class: "system-status-icon"
        });
        this.actor.add_actor(this.icon);

        // Menu
        this.menuItem = new PopupMenu.PopupMenuItem("Salah Time", {});
        this.menu.addMenuItem(this.menuItem);
    }
});

function init() {
}

function enable() {
    let indicator = new TimeButton();
    Main.panel.addToStatusArea("should-be-a-unique-string", indicator);

    // hide
    Main.panel.statusArea["should-be-a-unique-string"].actor.visible = false;

    // change icon
    Main.panel.statusArea["should-be-a-unique-string"].icon.icon_name = "appointment-soon-symbolic";

    // show
    Main.panel.statusArea["should-be-a-unique-string"].actor.visible = true;
}

function disable() {
    // you could also track "indicator" and just call indicator.destroy()
    Main.panel.statusArea["should-be-a-unique-string"].destroy();
}

希望能对某人有所帮助(如果您不在身边)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM