Я начал создавать графический интерфейс с библиотеками Glade, python и Gtk3. Я хочу попытаться просмотреть внешнее окно, связывающее его внутри контейнера в моем графическом интерфейсе. Является ли это возможным? Что является лучшим контейнером для этого?
Я начал искать, но простые методы в Gtk2 (например здесь) больше не могут использоваться в Gtk3.
Я нашел очень интересное сообщение здесь, которое позволяет мне установить правильный идентификатор целевого окна, но я все еще запутался в том, как показать его внутри моего графического интерфейса,
Я не понял, что попытался немного изменить эти руководства с помощью cairo.
Моя часть кода до сих пор (я хочу отобразить окно с ID = 0x360000b в контейнере map_area, и я должен использовать структуру "self." ). Временно контейнер map_area представляет собой Drawingarea.
# if condition occurs
Gdk.Window.process_all_updates()
win_id = 0x360000b # from xwininfo command
root_win = GdkX11.X11Display.get_default()
win = GdkX11.X11Window.foreign_new_for_display(root_win, win_id)
width = win.get_width()
height = win.get_height()
self.map_area = cairo.ImageSurface(cairo.FORMAT_ARGB32, width, height)
pixbuf = Gdk.pixbuf_get_from_window(win, 0, 0, width, height)
cr = cairo.Context(self.map_area)
Gdk.cairo_set_source_pixbuf(cr, pixbuf, 0, 0)
cr.paint()
Может ли кто-нибудь мне помочь? Заранее благодарю вас!