在Tkinter框架内嵌入konsole或gnome-terminal

时间:2018-05-29 10:13:45

标签: python tkinter xterm gnome-terminal konsole

我能够将xterm嵌入到Tkinter GUI框架中:

Frame2 = Frame(master)
Frame2.pack(fill=BOTH, expand=YES)
wid = Frame2.winfo_id()
os.system('xterm -into %d -hold -geometry 300x10 -sb &' % wid)

但这不起作用:

Frame2 = Frame(master)
Frame2.pack(fill=BOTH, expand=YES)
wid = Frame2.winfo_id()
os.system('gnome-terminal' % wid)

TypeError: not all arguments converted during string formatting

我可以以任何方式在框架中嵌入konsole或gnome-terminal吗?

2 个答案:

答案 0 :(得分:0)

我在Ubuntu上没有很多经验,但在输入

之后
  • xterm -help
  • konsole -help
  • gnome-terminal --help

我意识到也许xterm是嵌入tkinter帧的最佳终端,因为我不知道我可以编辑

/ etc / X11 / Xresources / x11-common(我正在运行kubuntu 18.04)

change as much as I want the style of the terminal

XTerm*faceName: Bitstream Vera Serif Mono
xterm*faceSize: 11
xterm*vt100*geometry: 80x60
xterm*saveLines: 16384
xterm*loginShell: true
xterm*charClass: 33:48,35:48,37:48,43:48,45-47:48,64:48,95:48,126:48
xterm*termName: xterm-color
xterm*eightBitInput: false

!BLK Cursor
#define _color0        #000d18
#define _color8        #000d18
!RED Tag
#define _color1        #e89393
#define _color9        #e89393
!GRN SpecialKey
#define _color2        #9ece13
#define _color10       #9ece13
!YEL Keyword
#define _color3        #f0dfaf
#define _color11       #f0dfaf
!BLU Number
#define _color4        #8cd0d3
#define _color12       #8cd0d3
!MAG Precondit
#define _color5        #c0bed1
#define _color13       #c0bed1
!CYN Float
#define _color6        #dfaf8f
#define _color14       #dfaf8f
!WHT Search
#define _color7        #efefef
#define _color15       #efefef
!FMT Include, StatusLine, ErrorMsg
#define _colorBD       #ffcfaf
#define _colorUL       #ccdc90
#define _colorIT       #80d4aa
!TXT Normal, Normal, Cursor
#define _foreground    #dcdccc
#define _background    #1f1f1f
#define _cursorColor   #8faf9f
URxvt*color0         : _color0
URxvt*color1         : _color1
URxvt*color2         : _color2
URxvt*color3         : _color3
URxvt*color4         : _color4
URxvt*color5         : _color5
URxvt*color6         : _color6
URxvt*color7         : _color7
URxvt*color8         : _color8
URxvt*color9         : _color9
URxvt*color10        : _color10
URxvt*color11        : _color11
URxvt*color12        : _color12
URxvt*color13        : _color13
URxvt*color14        : _color14
URxvt*color15        : _color15
URxvt*colorBD        : _colorBD
URxvt*colorIT        : _colorIT
URxvt*colorUL        : _colorUL
URxvt*foreground     : _foreground
URxvt*background     : _background
URxvt*cursorColor    : _cursorColor
XTerm*color0         : _color0
XTerm*color1         : _color1
XTerm*color2         : _color2
XTerm*color3         : _color3
XTerm*color4         : _color4
XTerm*color5         : _color5
XTerm*color6         : _color6
XTerm*color7         : _color7
XTerm*color8         : _color8
XTerm*color9         : _color9
XTerm*color10        : _color10
XTerm*color11        : _color11
XTerm*color12        : _color12
XTerm*color13        : _color13
XTerm*color14        : _color14
XTerm*color15        : _color15
XTerm*colorBD        : _colorBD
XTerm*colorIT        : _colorIT
XTerm*colorUL        : _colorUL
XTerm*foreground     : _foreground
XTerm*background     : _background
XTerm*cursorColor    : _cursorColor

答案 1 :(得分:0)

urxvt和st(Suckless Simmple Terminal)也可以将终端窗口嵌入到另一个窗口中。

我在Gtk中执行此操作,但请记住,使用Wayland时,他们全都取消了对插座和插头的支持,这就是将窗口嵌入其他窗口的机制。