Можно ли клонировать wxPanel через пару кадров в wxPython?
- Я пытался использовать тот же wxID, что имело большое значение.
- Я попытался использовать тот же экземпляр элемента управления, что приводит к рисованию только одного.
В конечном итоге я пытаюсь отобразить вывод LibVLC (который визуализирует в wxPanel через hwnd) одновременно в двух кадрах. Один кадр находится внутри окна управления, чтобы обеспечить «предварительный просмотр» видео, а другой отображается в полноэкранном режиме на втором мониторе.
Вот сокращенная версия кода, который я использую для отображения вывода видео в окне предварительного просмотра:
class MainFrame(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.video_panel = wx.Panel(self, wx.ID_ANY)
self.video_panel.SetBackgroundColour(wx.Colour(0, 0, 0))
sizer_video = wx.BoxSizer(wx.VERTICAL)
sizer_video.Add(self.video_panel, 1, wx.ALL | wx.EXPAND, 2)
self.SetSizer(sizer_video)
self.Layout()
self.Instance = Libraries.vlc.Instance()
self.player = self.Instance.media_player_new()
def mediaLoad(self, path):
self.Media = self.Instance.media_new(unicode(path))
self.player.set_media(self.Media)
if sys.platform.startswith('win'):
self.player.set_hwnd(self.video_panel.GetHandle())
elif sys.platform.startswith('linux'):
self.player.set_xwindow(self.video_panel.GetHandle())
else:
self.player.set_nsobject(self.video_panel.GetHandle())