Tkinter GUI中的控制台

你好,字节社区!
我正在使用tkinter创建一个图形用户界面,我想知道如何在图形用户界面中嵌入一个"控制台"窗口小部件。有点像Python命令行,但在图形用户界面中
提前谢谢!

# 回答1


尽管我从未这样做过,但您可以使用Tkinter.Text小部件在小部件中创建一个"命令行控制台"。
# 回答2


谢谢您的建议,但您知道如何以类似列表的格式存储字符串、在打印时将字符串附加到末尾并在其中使用\n\吗?列表不起作用,因为它将显示为[...,...,...]
如有任何帮助,我们将不胜感激
# 回答3


我不明白你想要达到什么目的。我结合Entry小部件创建了一个Tkinter.Text示例。Entry小部件绑定到Enter键,文本小部件绑定到Insert键。

选择 | 换行 | 行号
  1. import Tkinter
  2. from itertools import cycle
  3.  
  4. class App(Tkinter.Tk):
  5.     def __init__(self, textList, master=None):
  6.         Tkinter.Tk.__init__(self, master)
  7.         self.textiter = cycle(textList)
  8.         self.txt = Tkinter.StringVar()
  9.         self.rootEntry = Tkinter.Entry(self, textvariable=self.txt)
  10.         self.rootEntry.pack()
  11.         self.rootEntry.bind("<Return>", self.cycle_text)
  12.         self.rootText = Tkinter.Text(self)
  13.         self.rootText.pack()
  14.         self.rootText.bind("<Insert>", self.insert_all)
  15.         self.newList = []
  16.  
  17.     def cycle_text(self, arg=None):
  18.         t = self.textiter.next()
  19.         self.txt.set(t)
  20.         self.rootText.insert("end", t+"\n")
  21.         self.newList.append(self.rootText.get("end - 2 chars linestart", "end - 1 chars"))
  22.  
  23.     def insert_all(self, arg):
  24.         self.rootText.insert("end", "".join([s.strip() for s in self.newList]))
  25.  
  26. textList = ["Line 1", "Line 2", "Line 3"]
  27. root = App(textList)
  28. root.mainloop()
# 回答4


谢谢!这就是我想要达到的目标。
# 回答5


这怎么能被用作一个命令行,我只是得到了类似"对象没有属性'下一步'"的错误,不仅如此,这是否可以被用作用户输入的控制台,我想让用户写用户输入,在tk窗口而不是控制台,但在tk窗口显示控制台可以工作。

标签: python

添加新评论