2012-07-27 38 views
5

tôi đang tạo một thiết bị đầu cuối đơn giản trong python bằng vte.Terminal. tôi muốn có một mức độ minh bạch nhất định trong nền thiết bị đầu cuối nhưng set_opacity không hoạt động. nhưng nó hoạt động trong terminator và thiết bị đầu cuối khác.cách bật tính minh bạch trong vte.Terminal

window.set_opacity làm cho toàn bộ cửa sổ trong suốt nhưng tôi không muốn dơi tiêu đề phải trong suốt. đây là mã.

#!/usr/bin/env python 

import vte 
import gtk 
import pango 
import os 
import signal 

window = gtk.Window(gtk.WINDOW_TOPLEVEL) 
window.connect('destroy', lambda w: gtk.main_quit()) 
# initial window size 
window.resize(640, 480) 

terminal = vte.Terminal() 
terminal.connect("child-exited", lambda w: gtk.main_quit()) 

# here you can set backscroll buffer 
terminal.set_scrollback_lines(5000) 
# encoding for console 
terminal.set_encoding("UTF-8") 
terminal.set_cursor_blinks(False) 

# here you can set background image 
#terminal.set_background_image_file("some/background/picture/here") 

# transparency 
terminal.set_opacity (45000) 
# font for terminal 
font = pango.FontDescription() 
font.set_family("Ubuntu Mono") 
# font size 
font.set_size(11 * pango.SCALE) 
font.set_weight(pango.WEIGHT_NORMAL) 
font.set_stretch(pango.STRETCH_NORMAL) 

terminal.set_font_full(font, True) 

child_pid = terminal.fork_command() 

scroll = gtk.ScrolledWindow() 
scroll.set_policy(0,1) 
scroll.add_with_viewport(terminal) 

window.add(scroll) 
window.show_all() 

# This must be here! before gtk.main() 
# here you can set columns count (first param) 
terminal.set_size(500,0) 

try: 
    gtk.main() 
except KeyboardInterrupt: 
    pass 
+0

Bạn đã bao giờ nhận được câu trả lời này chưa? Im có cùng một vấn đề. – weberc2

Trả lời

0

Đoạn mã sau giải quyết được sự cố này.

colormap = window.get_screen().get_rgba_colormap() 
if colormap == None: 
    colormap = window.get_screen().get_rgb_colormap() 
gtk.widget_set_default_colormap(colormap) 

This is how the window looks

mặc dù tôi endded bằng cách sử dụng Vala cho chương trình và nó có một chức năng đơn giản gọi là set_visual.

Hy vọng điều này sẽ giúp

+0

Tôi đã chơi đùa với điều này ... Tôi có thể làm cho thiết bị đầu cuối bằng chính nó trong suốt, nhưng ngay sau khi tôi đặt ScrolledWindow giữa cửa sổ chính và thiết bị đầu cuối, nó trở nên mờ đục một lần nữa, ngay cả khi tôi gọi ScrolledWindow.set_opacity (0). Tôi cũng đang sử dụng Vala. – weberc2

Các vấn đề liên quan