Ich versuche, vte
meiner Anwendung ein Widget hinzuzufügen, und die Beispiele, die ich gefunden habe, verwenden .fork_command()
, um einen Befehl in diesem Widget auszuführen. Aber laut
http://developer.gnome.org/vte/0.26/VteTerminal.html#vte-terminal-fork-command
Es war veraltet und es wird empfohlen, es zu verwenden fork_command_full()
. Welches braucht acht zwingende Argumente. Haben sie das Wort " Standard " nicht gehört ? Ich konnte Linien konstruieren, die irgendwie funktionieren:
pty_flags = vte.PtyFlags(0)
terminal.fork_command_full(pty_flags, "/home/int", ("/bin/bash", ), "", 0, None, None)
Ja, ich kenne die Aufzählungen, ich hoffe nur, dass ich das völlig falsch mache und es einen viel einfacheren Weg gibt. Kennst du irgendwelche?
PS Ich verwende quickly
mit der Standardvorlage ubuntu-application
.
PPS Die Importzeile ist from gi.repository import Vte as vte
Antworten:
Hier ein einfaches Beispiel:
quelle
Aufbauend auf der Antwort von ADcomp auf die Frage, ob sie in Zukunft dynamisch hinzugefügt werden sollen, möchten Sie möglicherweise Vte.terminal unterordnen.
quelle
__init__(self, command)
wäre noch schöner, ich werde es später versuchen.Seit VTE 0.38
vte_terminal_fork_command_full ()
wurde in umbenanntvte_terminal_spawn_sync ()
. Wenn Sie also neuere Versionen verwenden, müssen Sie die Antwort von @ ADcomp wie folgt ändern :quelle