如何在 Gnome Shell 中设置应用程序标题?

2023-11-24

我是 Gtk+ 开发的新手,正在尝试使用 PyGObject 和 Gtk+3.0 编写一个应用程序。然而,当我从命令行在 Gnome Shell 中运行应用程序时,出现在左上角(紧邻“活动”热角右侧)的应用程序名称仅设置为 Python 源文件的名称我跑去启动应用程序。有什么方法可以设置我的应用程序的名称出现在 Gnome Shell 中吗?我查看了 Gtk.Application,虽然它似乎做了一些我想要的事情(无论如何从 Gtk+3.3 开始),但我似乎不知道如何修复活动名称或应用程序名称。


gnome-shell 尝试将窗口与应用程序(aShellApp实例)并使用该名称。这样做的代码在这里:http://git.gnome.org/browse/gnome-shell/tree/src/shell-window-tracker.c#n328

但如果找不到ShellApp对于窗口,然后它回退到使用指定的 ICCCMWM_CLASS(规格位于http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.5) here: http://git.gnome.org/browse/gnome-shell/tree/src/shell-app.c#n361

因此,如果您没有安装 .desktop 文件来查找应用程序名称,您将获得默认值WM_CLASS出现在那里。 GTK 根据可执行文件名称自动生成。您可以在实现窗口之前覆盖它(这意味着在调用之前_show在窗户上)使用gtk_window_set_wmclass()

这是一个简单的示例,将显示为“Hello World”。不要忘记设置窗口标题!

#!/usr/bin/python
from gi.repository import Gtk

win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_wmclass ("Hello World", "Hello World")
win.set_title ("Hello World")
win.show_all()
Gtk.main()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Gnome Shell 中设置应用程序标题? 的相关文章

随机推荐

  • 神秘的形式(function(x){})$x

    物体是什么formals function x x 它存在于函数的形式中 绑定到没有默认值的参数 还有其他方法来引用这个奇怪的对象吗 除了表示空函数参数之外 它还有其他作用吗 以下是可以在控制台中检查的一些属性 gt is formals
  • Android 和桌面上 Java 下的 SVG 处理

    我正在尝试编写一个基于 XML 文件生成 SVG 图像的 Java 应用程序 该应用程序还应该能够显示 SVG 文件 我的应用程序应该在 Android 平台和台式电脑上运行 我读到过有关 Swing Batik 的内容 但据我所知 它在
  • Objective-C 中自定义对象的分组

    我有 Person 类的自定义对象数组 Person NSObject NSString firstName NSString lastName NSString age NSMutableArray personsArray NSMuta
  • #在C中定义一个元组

    我希望能够定义一个元组来表示其他宏所需的参数 我认为展示我想要的最好方法是展示一个例子 include
  • 如何将 InMemoryUploadedFile 对象复制到磁盘

    我试图捕获通过表单发送的文件 并在保存之前对其执行一些操作 所以我需要在临时目录中创建该文件的副本 但我不知道如何访问它 Shutil 的函数无法复制该文件 因为没有该文件的路径 那么有没有办法以其他方式执行此操作 我的代码 image f
  • 在 Android 上使用客户端/服务器证书进行双向身份验证 SSL 套接字

    我正在开发一个需要客户端和服务器证书身份验证的 Android 应用程序 我创建了一个 SSLClient 类 该类在常规桌面 Java SE 6 上运行良好 我已将其移至我的 Android 项目中 但收到以下错误 未找到 KeyStor
  • 在 R 包中将非 S3 基本函数重新定义为 S3 函数是一种不好的风格吗?

    所以我正在开发一个使用 S3 类的 R 包 如果我可以使用sample作为我的一门课的方法 然而 base已经声明了sample作为一个非S3功能 所以我想知道的是 重新定义非S3是不是不好的风格base函数如sample作为 S3 功能
  • CSS 过渡与可见性不起作用

    在下面的小提琴中 我分别对可见性和不透明度进行了转换 后者有效 但前者无效 此外 在可见性的情况下 过渡时间被解释为悬停时的延迟 在 Chrome 和 Firefox 中都会发生 这是一个错误吗 http jsfiddle net 0r21
  • 从c++程序调用python进行分发

    我想从我的 C 程序中调用 python 脚本文件 我不确定我将分发给的人是否安装了 python 我想从我的 C 程序中调用 python 脚本文件 这意味着您希望将 Python 嵌入到您的 C 应用程序中 正如中提到的将 Python
  • Jersey:JSON 对象列表

    我试图在我的 Jersey 实现资源类中检索对象的后集合 如下所示 POST Path send Consumes MediaType APPLICATION JSON Produces MediaType APPLICATION JSON
  • GSON 和 InstanceCreator 问题

    我有以下 POJO public interface Shape public double calcArea public double calcPerimeter public class Rectangle implement Sha
  • 发送带有个人资料图片的电子邮件 PHP 邮件功能

    当用户收到从我的网站使用 PHP 发送的电子邮件时 我想在用户收件箱中显示个人资料图片 在这张图片中 第一封电子邮件来自我的网站 第二封电子邮件是我想要的 这是我的 PHP 邮件函数 emailTo POST emialNewPass em
  • 如何在 Python 中按字母数字顺序获取下一个字符串?

    我需要一个简单的程序 给定一个字符串 按字母数字顺序 或仅按字母顺序 返回下一个字符串 f aaa aab f aaZ aba 等等 其中一个模块中是否已经有此功能 我认为没有内置函数可以做到这一点 以下应该有效 def next stri
  • 如何使用属性 server.port=0 运行 spock 测试时查找 Spring Boot 容器的端口

    鉴于此条目application properties server port 0 这会导致 Spring Boot 选择一个随机可用端口 并使用 spock 测试 Spring Boot Web 应用程序 spock 代码如何知道要访问哪
  • 如何从 android 调用 .NET Web 服务? [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我需要使用如下 URL 调用 Web 服务 http 192 168 1 19 Test
  • 将 Spring Cloud Gateway 与 oauth2 一起使用

    我在使用 Spring Cloud Gateway 时遇到问题 是否有任何依赖项直接或递归调用 spring boot starter tomcat 它不会工作 因为它将启动嵌入式 tomcat 服务器而不是 Spring Cloud Ga
  • 如何在 Swift 中按属性值对自定义对象数组进行排序

    假设我们有一个名为的自定义类imageFile这个类包含两个属性 class imageFile var fileName String var fileID Int 其中很多都存储在数组中 var images Array var aIm
  • 如何使用 LWP::UserAgent 接受自签名证书

    我正在尝试设置一个使用 HTTPS 的 node js 服务器 然后 我将用 Perl 编写一个脚本 向服务器发出 HTTPS 请求并测量往返延迟 这是我的node js var express require express var ht
  • 将 HttpPostedFileBase 转换为 byte[]

    在我的 MVC 应用程序中 我使用以下代码来上传文件 MODEL public HttpPostedFileBase File get set VIEW Html TextBoxFor m gt m File new type file 一
  • 如何在 Gnome Shell 中设置应用程序标题?

    我是 Gtk 开发的新手 正在尝试使用 PyGObject 和 Gtk 3 0 编写一个应用程序 然而 当我从命令行在 Gnome Shell 中运行应用程序时 出现在左上角 紧邻 活动 热角右侧 的应用程序名称仅设置为 Python 源文