这是一个工作简单的测试代码。希望它可以帮助你,是你想要的。
import gi
gi.require_version('Wnck', '3.0')
gi.require_version('Gtk', '3.0')
from gi.repository import Wnck
from gi.repository import Gtk
def test_do_when_window_opened_simple():
Gtk.init([])
screen: Wnck.Screen = Wnck.Screen.get_default()
screen.force_update()
def do_window_opened(this_screen: Wnck.Screen, opened_window: Wnck.Window):
print('hello')
app: Wnck.Application = opened_window.get_application()
app_name = app.get_name()
print('app name -> ' + app_name)
print('window name -> ' + opened_window.get_name())
screen.connect('window-opened', do_window_opened)
Gtk.main()
if __name__ == '__main__':
test_do_when_window_opened_simple()
也可以看看:
请检查此链接的第一条评论
请检查此链接的示例,虽然它是用 C 编写的
注意:Wnck.Screen 对象有一个名为“do_window_opened”的函数,但它没有实现。我在尝试调用它时收到错误消息“gi.repository.GLib.GError: g-invoke-error-quark: Class WnckScreen does not implement window_opened (1)”。