저는 gtk 및 gnome 개념과 약간 혼동합니다. 내 gnome2 바탕 화면에서 최소화되지 않은 창의 목록을 얻으려고하지만 pygtk 설명서를 읽고 결과를 검사 한 후에 결과를 이해할 수 없습니다.pygtk를 사용하여 gnome2 데스크탑의 모든 창 목록을 얻으려면 어떻게합니까?
아래의 두 스 니펫 중 어느 것도 작동하지 않습니다.
는 우선 다음 콘솔 출력에서 볼이>>> d = gtk.gdk.DisplayManager()
>>> d.get_default_display().get_screen(0).get_root_window().get_children()
[<gtk.gdk.Window object at 0x89dcc84 (GdkWindow at 0x8a4c170)>, <gtk.gdk.Window object at 0x89dccac (GdkWindow at 0x8a4c0c0)>]
바와 같이, 두 번째 옵션은 두 개의 창을 반환이 ..
>>> gtk.gdk.window_get_toplevels()
[<gtk.gdk.Window object at 0xb74339b4 (GdkWindow at 0x8a4c170)>]
>>> gtk.gdk.window_get_toplevels()[0].get_children()
[]
을 시도했다. 그러나 나는 그들이 무엇인지 알아낼 수 없었습니다. 그들 중 누구도 아이가 없으며 데스크탑에 얼마나 많은 윈도우가 있는지에 관계없이 항상 두 개의 윈도우를 얻습니다.
누구나 전형적인 gtk 기반 데스크탑 환경의 객체 계층을 설명 할 수 있습니까? 위의 코드가 작동하지 않는 이유를 이해할 수 없습니다.
자원을 wnck, xlib, qt 등으로 대체 할 수있는 대안 솔루션을 게시하지 마십시오. 다른 라이브러리를 확인하는 것과 관련하여 조언을받는 것보다 내가 뭘 잘못하고 있는지 이해하는 데 더 많은 관심이 있습니다.
나는 무례하다는 뜻이 아니지만 귀하의 답변이 만족스럽지 않다고 생각합니다. 회신이 끝날 때까지, 귀하는 귀하의 초기 바나나 -CA 판독기 비유를 털어 놓았습니다. 나는 gtk와 dtk.gdk 윈도우 사이의 차이점을 알고있다. 당신이 내 질문을주의 깊게 읽으면, 그것은 약간 오프 - 주제라는 것을 알게 될 것이다. 내가 언급 했음에도 불구하고 나는 혼란 스러웠다. 그래서 나는 mea-culpa라고 주장한다. – Pico
제가 생각하기에'gtk.gdk.window_get_toplevels()'가 당신이 기술 한 결과를 출력하지 않는 이유는 무엇입니까? 창 정렬에 관해서, 나는 그 유일한 목적을위한 속성을 가지고 있다는 인상하에있었습니다. – Pico
좋아, 내가 왜 당신이 창문의 _widgets_을 얻을 수 없었는지에 대한 질문을 해석했다고 생각한다. 나는 왜 GDK 호출이 당신이 원하는 것을하지 않고 있는지 모른다. 아마도 libwnck 소스 코드를보고 거기에서 어떻게 작동하는지보아야 할 것입니다. – ptomato