gpt4 book ai didi

python - 如何在 vte.Terminal 中启用透明度

转载 作者:太空狗 更新时间:2023-10-30 01:38:41 26 4
gpt4 key购买 nike

我正在使用 vte.Terminal 在 python 中创建一个简单的终端。我想在终端背景中有一定程度的透明度,但 set_opacity 不起作用。但它适用于终结器和其他终端。

window.set_opacity 使整个窗口透明,但我不希望标题 bat 透明。这是代码。

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

最佳答案

以下代码片段解决了这个问题。

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

尽管我最终在程序中使用了 Vala,并且它有一个名为 set_visual 的简单函数.

希望对你有帮助

关于python - 如何在 vte.Terminal 中启用透明度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11686510/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com