如何使用tkinter将命令写入终端?

时间:2016-12-14 20:29:16

标签: python tkinter

我想做类似的事情,如果我在文本框中键入一些命令将完全执行 像这样enter image description here

即显示〜桌面以写下一个命令。

但是我的代码我也得到了这个错误

enter image description here

你可以看到ls命令在第二种情况下被执行了一半 我的代码是

#!/usr/bin/python
import Tkinter
import subprocess

import tkMessageBox
from Tkinter import *
root = Tk()
class HackBar:

  def __init__(self,master):

      frame=Frame(master,width = 600,height = 250)
      #frame.pack()

      def printconsole(event):
          print("hello dere ")
      def retrieve_input(event):
          input = self.Text.get("1.0",'end-1c')
          #print(input)
          #subprocess.call(input,shell=TRUE)
          subprocess.Popen(input)
          root.quit()
          #root = Tk()
          #print p.communicate()

      self.button1 = Button(root,text = "Execute")
      self.button1.bind("<Button-1>",retrieve_input);
      self.button1.grid(row = 0,sticky = E)

      self.button2 = Button(root,text = "  Quit   ")
      self.button2.bind("<Button-1>",printconsole);
      self.button2.grid(row = 1,sticky = E)

      self.Text = Text(root,height =4)
      self.Text.grid(row = 0,column = 1,rowspan=2)

menu = Menu(root)
def AboutDialog():
    tkMessageBox.showinfo('About','For any issues or suggestion contact rushic24@gmail.com ')
root.config(menu = menu)
submenu1 = Menu(menu)
menu.add_cascade(label="Help",menu=submenu1)
submenu1.add_command(label = "About",command = AboutDialog)

b = HackBar(root)
root.mainloop()

我想我需要使用root.quit()并再次需要启动root, 但它给出了上述错误。 任何替代方法也可以。

0 个答案:

没有答案