【问题标题】:Python scrolledtext modulePython 滚动文本模块
【发布时间】:2017-02-02 15:59:36
【问题描述】:

我想使用 scrolledtext 模块创建一个 ScrolledText 小部件,以便在 python 中创建 GUI。我已经成功创建了一个 ScrolledText 小部件,但是我无法为其添加水平滚动条。

e3=ScrolledText(window3,width=24,height=13)
e3.grid(row=5,column=1,rowspan=6,columnspan=4)

上面的代码 sn-p 用于创建 ScrolledText 小部件。

ScrolledText Widget Screenshot

小部件仅包含垂直滚动条。我也想给它添加一个水平滚动条。知道怎么做吗?

更新: ScrolledText 小部件用于接受多行输入。检查附上的图片。

ScrolledText widget

【问题讨论】:

  • 为什么使用滚动文本小部件?只需几行代码就可以轻松地将水平和垂直滚动条添加到文本小部件。您是否愿意接受不使用 ScrolledText 的解决方案?
  • @BryanOakley 。实际上,我正在创建一个电子邮件发件人应用程序,我需要一个多行输入小部件。这就是我使用 ScrolledText 的原因。另外,我需要水平滚动条的原因是为了让用户能够正确记录他的电子邮件标识。我将附上整个屏幕的截图。而且,是的,我对替代解决方案很好。
  • 而不是 ScrolledText,如果有任何其他小部件允许使用水平和垂直滚动条选项进行多行输入,我可以使用它。 i.stack.imgur.com/ewOVz.jpg
  • 是的,您可以使用Text 小部件。
  • 你能提供一个带有滚动条配置的代码示例吗?

标签: python python-3.x user-interface tkinter


【解决方案1】:

您可以使用文本小部件和几个滚动条自己实现滚动文本小部件。

下面的示例将一个文本小部件和两个滚动条放在一个框架中,这样它们就好像它们是一个小部件一样。这几乎正​​是 ScrolledText 小部件所做的:

import tkinter as tk

root = tk.Tk()

textContainer = tk.Frame(root, borderwidth=1, relief="sunken")
text = tk.Text(textContainer, width=24, height=13, wrap="none", borderwidth=0)
textVsb = tk.Scrollbar(textContainer, orient="vertical", command=text.yview)
textHsb = tk.Scrollbar(textContainer, orient="horizontal", command=text.xview)
text.configure(yscrollcommand=textVsb.set, xscrollcommand=textHsb.set)

text.grid(row=0, column=0, sticky="nsew")
textVsb.grid(row=0, column=1, sticky="ns")
textHsb.grid(row=1, column=0, sticky="ew")

textContainer.grid_rowconfigure(0, weight=1)
textContainer.grid_columnconfigure(0, weight=1)

textContainer.pack(side="top", fill="both", expand=True)

root.mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 2015-08-20
    • 2013-11-16
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多