首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在wnck python中检测窗口何时打开

在wnck python中检测窗口何时打开
EN

Stack Overflow用户
提问于 2020-08-30 18:30:46
回答 1查看 523关注 0票数 2

我正在用libwnck制作一个窗口贴图脚本。我想检测用户何时打开一个新窗口来调整它的大小。到目前为止,我的代码的要点如下:

代码语言:javascript
复制
import gi

gi.require_version("Wnck", "3.0")
from gi.repository import Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

# Here I resize all windows in the current workspace using
# window.set_geometry

# The script ends here however I'd like it to continue forever
# and detect a "window opened event"

从文档中看,似乎有一些像do_window_opened这样的虚拟方法,但我不知道如何让它在python中工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-14 14:47:25

下面是一个工作简单的测试代码。希望它能帮助你,也是你想要的。

代码语言:javascript
复制
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 -夸克:类WnckScreen在试图调用它时没有实现window_opened (1)‘。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63660821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档