cara mengaktifkan transparansi di vte.Terminal

saya membuat terminal sederhana dengan python menggunakan vte.Terminal. saya ingin memiliki tingkat transparansi tertentu di latar belakang terminal tetapi set_opacity tidak berfungsi. tetapi berfungsi di terminator dan terminal lainnya.

window.set_opacity membuat seluruh jendela transparan tetapi saya tidak ingin judulnya transparan. inilah kodenya.

#!/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

person voldyman    schedule 27.07.2012    source sumber
comment
Apakah Anda pernah mendapatkan jawaban ini? Saya mempunyai masalah yang sama.   -  person weberc2    schedule 02.05.2015


Jawaban (1)


Cuplikan berikut memecahkan masalah ini.

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

Seperti inilah tampilan jendelanya

meskipun saya akhirnya menggunakan Vala untuk program ini dan memiliki fungsi sederhana yang disebut set_visual.

Semoga ini membantu

person voldyman    schedule 03.05.2015
comment
Saya sedang bermain-main dengan ini... Saya dapat membuat terminal itu sendiri transparan, tetapi segera setelah saya meletakkan ScrolledWindow antara jendela utama dan widget terminal, itu menjadi buram lagi, bahkan jika saya memanggil ScrolledWindow.set_opacity(0) . Saya juga menggunakan Vala. - person weberc2; 08.05.2015