wxPython窗口ID

时间:2017-09-28 14:53:22

标签: wxpython wxpython-phoenix

我正在尝试使用wxPython编写相框应用程序。为了观看视频和照片,我开始使用wx.media,但发现gstreamer后端不够用。所以我转向mplayerctrl并将其移植到Python3 / Phoenix。我一直在努力让它工作的是以编程方式检索窗口ID以传递到mplayer,以便视频在帧内播放。我已经验证了如果我从xwininfo获取窗口id,这是有效的,但是如果我使用GetHandle()它返回0并且如果我使用GetGtkWidget()它返回一个值,但该值与窗口id不对应。 mplayerctrl的股票版本使用了self.Handle。 https://docs.wxpython.org/wx.Window.html

我正在寻找一种适用于Linux的解决方案,但希望可以移植到其他平台。理想情况下,这个解决方案也是wxPython / Python native。

由于

1 个答案:

答案 0 :(得分:0)

我认为您过早尝试设置handle 我怀疑你正在启动handle作为初始化程序的一部分。我发现你应该等到你选择要播放的视频并在那时使用self.xxxxx.GetHandle(),即你为要求玩家玩的每个项目执行该功能。
我用python 3.5.2 wxpython 4.0.02b Linux Mint 18.2并使用Vlc测试了这个。
似乎MainLoop必须在GetHandle返回有效值之前启动。