【问题标题】:Multiple line text entry box in pythonpython中的多行文本输入框
【发布时间】:2014-11-02 21:39:28
【问题描述】:

在 python 中,我一直在制作像 Microsoft Word 这样的文本编辑器,但我不知道如何制作一个文本输入框供用户输入。这是我的代码! (ps谢谢!)

from tkinter import *
import sys


def doNothing():
    print("Test")


root = Tk()
root.title("TextEditor")
root.geometry("300x200")
menu = Menu(root)
root.config(menu=menu)

subMenu = Menu(menu)
menu.add_cascade(label="File", menu=subMenu)
subMenu.add_command(label="New Project...", command =doNothing)
subMenu.add_command(label="Save", command=doNothing)
subMenu.add_separator()

editMenu = Menu(menu)
menu.add_cascade(label="Edit", menu=editMenu)
editMenu.add_command(label="Undo",command=doNothing)

root.mainloop()

【问题讨论】:

    标签: python-3.x tkinter


    【解决方案1】:

    你可以这样做:

    TextArea = Text()
    TextArea.pack(expand=YES, fill=BOTH)
    

    如果你想要一个滚动条:

    TextArea = Text()
    ScrollBar = Scrollbar(root)
    ScrollBar.config(command=TextArea.yview)
    TextArea.config(yscrollcommand=ScrollBar.set)
    ScrollBar.pack(side=RIGHT, fill=Y)
    TextArea.pack(expand=YES, fill=BOTH)
    

    希望这有帮助,祝你好运!

    【讨论】:

    • 非常感谢!我非常适合我需要的东西!
    • @AndyWittig 在我的答案左侧,投票选项下方是一个复选标记。如果您单击它,它会将我的答案移到顶部,以便其他人可以更轻松地找到它,因此人们知道您的问题已解决。谢谢!
    【解决方案2】:

    这是一个老问题,但目前以下是一个非常好的可滚动多行文本输入方法:

    ScrolledText(mainwin, width=50, height=5).pack()
    

    完整程序:

    from tkinter import *
    from tkinter.scrolledtext import ScrolledText
    
    mainwin = Tk()
    ScrolledText(mainwin, width=50, height=5).pack()
    mainwin.mainloop()
    

    下面的演示应用程序进一步展示了它的用法并与输入框(python3)进行了比较:

    from tkinter import *
    from tkinter.scrolledtext import ScrolledText
    
    mainwin = Tk()
    Label(mainwin, text="An Entry Box:").grid(row=0, column=0)
    ent = Entry(mainwin, width=70); ent.grid(row=0, column=1)
    Button(mainwin, text="Print Entry", command=(lambda: print(ent.get()))).grid(row=0, column=2, sticky="EW")
    
    Label(mainwin, text="ScrolledText Box:").grid(row=1, column=0)
    st = ScrolledText(mainwin, height=5); st.grid(row=1, column=1)
    Button(mainwin, text="Print Text", command=(lambda: print(st.get(1.0, END)))).grid(row=1, column=2, sticky="EW")
    
    Button(mainwin, text="Exit", command=sys.exit).grid(row=2, column=0, columnspan=3, sticky="EW")
    mainwin.mainloop()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-20
      • 1970-01-01
      相关资源
      最近更新 更多