gpt4 book ai didi

Python - 如何将文本写入 GTK+ Vte 终端小部件?

转载 作者:太空宇宙 更新时间:2023-11-03 14:04:12 26 4
gpt4 key购买 nike

我正在尝试使用 Vte 终端小部件来显示 python 脚本中的文本。

我没有设置工作目录或模拟器,我只是想要一个处理文本和 ansi 转义序列的空终端

我有这段代码,它可以在 python 2.7 中运行:

import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Vte', '2.91')

from gi.repository import Gtk, Vte
from gi.repository import GLib
import os

terminal = Vte.Terminal()
terminal.spawn_sync(
Vte.PtyFlags.DEFAULT,
None,
[],
[],
GLib.SpawnFlags.DO_NOT_REAP_CHILD,
None,
None,
)

win = Gtk.Window()
win.connect('delete-event', Gtk.main_quit)
win.add(terminal)
win.show_all()

terminal.feed('hello') #string to display

Gtk.main()

但它在 python 3.5 中不起作用,我得到的只是一个空白终端。

最佳答案

以下是显示文本的正确方法:

import gi
gi.require_version('Gtk', '3.0')

from gi.repository import Gtk, Gdk, GLib
import os

textview = Gtk.TextView()
textview.set_name("TextView")
buf = Gtk.TextBuffer()
textview.set_buffer(buf)
buf.set_text("This is a test message\n")

style_provider = Gtk.CssProvider()

css = """
#TextView{
background-color: black;
}
"""
style_provider.load_from_data(bytes(css.encode()))
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(), style_provider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION
)

for color in ("red", "yellow", "green", "blue", "white"):
buf.insert_markup(
buf.get_end_iter(),
'<span color="{:s}">This is a test message</span>\n'.format(color),
-1)

win = Gtk.Window()
win.connect('delete-event', Gtk.main_quit)
win.add(textview)
win.show_all()


Gtk.main()

顺便说一句,这要容易得多。

编辑:包括颜色。

关于Python - 如何将文本写入 GTK+ Vte 终端小部件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49026950/

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