video - 在 Windows 上获取 gtk.gdk.window.handle

标签 video gtk pygtk vlc

我正在 Python 和 PyGTK 中开发一个简单的视频播放器,使用 VLC 作为播放器后端。我想在 gtk.DrawingArea 中显示视频图像,因此在 Linux 中,我使用 builder.get_object('drawingarea1').window.xid 来获取 DrawingArea 小部件的 XID。在Windows中,根据文档,我必须使用builder.get_object('drawingarea1').window.handle,但是当我开始播放视频文件时,它会在整个窗口中播放,而不是就在 gtk.DrawingArea 中。我开始挖掘以查找发生的情况,发现从 builder.get_object('mainWindow').window.handle 检索到的数字与 builder.get_object('drawingarea1') 相同。窗口句柄。这是获取小部件处理程序的正确方法,还是我做错了什么?

最佳答案

如果没有示例,我不确定你到底做了什么,但是我做了一些搜索,并在这里找到了这个问题和可能的答案 http://python.6.n6.nabble.com/gtk-DrawingArea-handle-id-on-win32-bug-td1943074.html 。并附上一个例子。链接http://library.gnome.org/devel/gtk/2.18/gtk-migrating-ClientSideWindows.html他提供的不再存在,但我找到了更新的链接http://developer.gnome.org/gtk/2.24/gtk-migrating-ClientSideWindows.html 。本质上看来你必须打电话

drawingarea.window.ensure_native()

制作

drawingarea.window.handle

属性返回绘图区域的正确 native 句柄

在 Linux 上获取属性

drawingarea.window.xid

自动调用

drawingarea.window.ensure_native()

但是

drawingarea.window.handle

不会为您执行此操作。

我希望这会有所帮助。

关于video - 在 Windows 上获取 gtk.gdk.window.handle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9259731/

相关文章:

python - 如何在 PyGTK 中设置默认按钮?

python - 子菜单项不调用函数 [有工作解决方案]

video - 如何在ffmpeg转换的flv中添加字幕

c++ - 写入未压缩的 AVI 视频

ruby-on-rails - 使用载波视频上传 .MOV 文件?

c - 将树附加到网格

python - 使用pygtk执行Python而不出现终端

python - 引用 flask 外部的媒体文件

css - 在CSS中将自己的样式应用于GTK中的Radio/CheckButtons时,如何摆脱重复的图像?

c++ - 类扩展 GtkWindow