Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Разработка GUI > Tkinter + Xterm


Автор: xandlom 8.5.2011, 09:48
Пытаюсь встроить Xterm в окно Tkinter`а.
Примерно что-то похожее на это(на wx):
Код

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((0,0,255))
app.SetTopWindow(xtermFrame)
xtermFrame.Show()
wx.CallLater(1000, bindXterm, xtermPanel)
app.MainLoop()



у меня :
Код

#!/usr/bin/python
# -*- coding: utf-8 -*-
from Tkinter import *
import sys
import os

class termWidgets:
    def __init__(self, root):
        frame = Frame(root)
        frame.pack()
        self.bindXterm(frame)

        return

    def bindXterm(self, root):
        winID = root.winfo_id(root)
        print "binding xterm to window ", winID
        os.system("xterm -inot " + str(winID))

def main():
    root = Tk()
    term1 = termWidgets(root)
    root.title('Xterm')
    root.mainloop()
main()


В результате:
binding xterm to window  111149060
xterm:  warning, error event received:
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  7 (X_ReparentWindow)
  Resource id in failed request:  0x6a00004
  Serial number of failed request:  189
  Current serial number in output stream:  245


Не могу никак понять:
 - Как получить winId в Tkinter?

Может быть у кого-нибудь есть какие идеи? Буду рад любым идем  smile 



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)