2009-07-19 3 views
0

Я ищу пример или совет для встраивания окна xterm в панель wxPython. Я думаю, что я могу получить идентификатор окна панели с чем-то вроде «wid = somePanel.GetHandle()», и я должен передать это «xterm -use wid», но до сих пор мне не очень повезло, что Работа.пример встроенного xterm в панели wxPython

ответ

1

Вот простой скрипт, который делает работу на моей машине (Ubuntu 8/питон 2.5.2/wxpython2.8.10)

import wx 
import os 

def bindXterm(win): 
    winID = win.GetHandle() 
    print "binding xterm to window %d(%x)"%(winID,winID) 
    os.system("xterm -inot %d"%winID) 

app = wx.PySimpleApp() 
xtermFrame = wx.Frame(None) 
xtermPanel = wx.Panel(xtermFrame) 
xtermPanel.SetBackgroundColour((255,0,0)) 
app.SetTopWindow(xtermFrame) 
xtermFrame.Show() 
wx.CallLater(1000, bindXterm, xtermPanel) 
app.MainLoop() 

Две вещи, чтобы отметить это

  1. Мой Xterm только -в вариант, используйте идентификатор окна, данное -в качестве родительского окна, а не в корневом окне по умолчанию
  2. Мы не можем просто прикрепить Xterm перед тем , начиная с приложения, поэтому с помощью calllater и он отлично работает
+0

Спасибо. В редкий момент ясности я понял, почему мой код не работает - я пытался внедрить xterm в OSX на основе какао версии wxPython. Этот код отлично работает на моем ящике Linux, хотя я удивлен, что работает «-inot». Разве это не должно быть «-инто»? –

Смежные вопросы