这是我的代码,我希望它能够在按下“发送”按钮后从窗口写入命令行。如果我想在终端中看到我的“ifconfig”,命令就会写入窗口并显示在命令行中。我想要的只是窗口在发送后写入命令行。我不知道我是否应该输入 \n 它会写一个新行,或者 pygtk 中是否已经内置了此功能。
#!/usr/bin/env python
import pygtk
pygtk.require('2.0')
import gtk
class Base:
def send(self, widget):
self.button.THIS_IS_WHERE_WRITE_IN_COMMANDLINE
def writecommand(self, widget):
self.textbox.get_text()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window = set_position(gtk.WIN_POS_CENTER)
self.window = set_size_request(600, 600)
self.window.set_title("WINDOW")
self.button = gtk.Button("SEND")
self.button.connect("clicked", self.send)
self.textbox = gtk.Entry()
self.textbox.connect("changed", self.writecommand)
self.box1 = gtk.VBox()
self.box1.pack_start(self.button)
self.box1.pack_start(self.textbox)
self.window.add(self.box1)
self.window.show_all()
base = Base()
gtk.main()
答案1
您可能正在寻找包system()
中的方法os
。已重写了代码片段,也进行了一些更正:
#!/usr/bin/env python
import pygtk
import os
pygtk.require('2.0')
import gtk
class Base:
def send(self, widget):
os.system('ifconfig') #this executes commands on the terminal
def writecommand(self, widget):
self.textbox.get_text()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_position(gtk.WIN_POS_CENTER)
self.window.set_size_request(600, 600)
self.window.set_title("WINDOW")
self.button = gtk.Button("SEND")
self.button.connect("clicked", self.send)
self.textbox = gtk.Entry()
self.textbox.connect("changed", self.writecommand)
self.box1 = gtk.VBox()
self.box1.pack_start(self.button)
self.box1.pack_start(self.textbox)
self.window.add(self.box1)
self.window.show_all()
base = Base()
gtk.main()
要从包中找出更多方法os
,请在 Python 解释器中输入以下内容:
import os
dir(os)
这将列出所有方法。要了解这些方法的作用,请键入
help(os.method_name)
例如
help(os.system)