11_terminal.py (Source)

#!/usr/bin/python
# -*- coding: utf-8 -*-

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

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

class Handler:

    def on_window_destroy(self,*args):
        Gtk.main_quit()

    def on_button_clicked(self,widget):
        command = "python\n"
        x.terminal.feed_child(command,len(command))

class Example:
    
    def __init__(self):
        
        self.builder = Gtk.Builder()
        GObject.type_register(Vte.Terminal)
        
        self.builder.add_from_file("11_terminal.glade")
        self.builder.connect_signals(Handler())
        
        self.terminal = self.builder.get_object("term")
        self.terminal.spawn_sync(
            Vte.PtyFlags.DEFAULT,
            None,
            ["/bin/bash"],
            None,
            GLib.SpawnFlags.DEFAULT,
            None,
            None,
            )

        window = self.builder.get_object("window")
        window.show_all()

    def main(self):
        Gtk.main()

x = Example()
x.main()