我正在研究gnome的扩展,其中有一个带有menuitems的弹出菜单 . 其中一个菜单项称为“注销” . 我已设法在“注销”旁边显示使用此代码的用户的真实姓名:
let username = GLib.get_real_name();
.........
.........
item = new PopupMenu.PopupMenuItem(_(list[x].text) + username);
现在我想显示真实姓名旁边的用户 Profiles 图片 . 我试过这段代码,但它不起作用:
let usename= GLib.get_user_name();
let user = AccountsService.UserManager.get_default().get_user(username);
let iconpath = user.get_icon_file();
let icon = Gio.icon_new_for_string(iconpath);
Icon = new St.Icon(icon);
boxicon = new St.BoxLayout();
boxicon.add(Icon);
似乎“iconpath”为null . 如何获取用户配置文件图像并将其显示在菜单中 . 提前致谢 .
1 回答
gnome-shell中有很多JavaScript已被编写为易于重用 . 奖金,您将自动获得对代码进行的错误修正和性能改进(如果它们发生) .
我建议你重复使用,或者至少看一下Avatar class in ui/userWidget.js . 不仅代码已经编写,而且它使头像保持最新,任何具有自定义样式的GNOME Shell主题也可能自动运行 .
您可以像这样使用此类:
其中还有其他类用于用户名标签,以及包含它们的父类 . 请注意以
_doStuff()
之类的下划线为前缀的类或函数,因为这是将事物标记为"private"或内部的常用方法,如有更改,恕不另行通知 .EDIT
此外,如果您没有使用或定位最新版本,请使用GitLab中的下拉菜单为您的版本选择分支,或查看文件的历史记录以查看是否有任何重要更改 .