2015-09-06 49 views
0

我在python中获得libwnck的窗口列表。但我无法获得应用程序的图标路径。libwnck如何找到应用程序/窗口的图标路径

import wnck 

screenW = wnck.screen_get_default(); 
screenW.force_update() 

windows = screenW.get_windows() 
    list = [] 
    for window in windows: 
    print 'icon name: ' + window.get_application().get_icon_name() 

get_icon_name返回窗口的名称/标题而不是图标名称。

例如Chrome浏览器图标是: /usr/share/icons/hicolor/16x16/apps/google-chrome.png

我怎么能得到这条道路?

回答

0

libwnck的source code表示此功能是不是真的落实,现在(和只返回应用程序,你已经写了名字):

const char* 
wnck_application_get_icon_name (WnckApplication *app) 
{ 
    g_return_val_if_fail (WNCK_IS_APPLICATION (app), NULL); 

    /* FIXME this isn't actually implemented, should be different 
    * from regular name 
    */ 

    if (app->priv->name) 
    return app->priv->name; 
    else 
    return FALLBACK_NAME; 
} 

而且,看着gtk_window_set_icon_from_filecode我不是甚至可以确定是否有可能得到这条路径,因为它不存储在pixbuf中:

gboolean 
gtk_window_set_icon_from_file (GtkWindow *window, 
        const gchar *filename, 
        GError  **err) 
{ 
    GdkPixbuf *pixbuf = load_pixbuf_verbosely (filename, err); 

    if (pixbuf) 
    { 
     gtk_window_set_icon (window, pixbuf); 
     g_object_unref (pixbuf); 

     return TRUE; 
    } 
    else 
    return FALSE; 
} 
+0

也许有可能使用窗口的pid或xid来找到这条路径......? – Alexandre

+0

我不认为这是可能的gtk +。也许像qt这样的其他GUI框架存储此路径。 – elya5

相关问题