【问题标题】:python tkinter scrollbar and text widget issuespython tkinter滚动条和文本小部件问题
【发布时间】:2011-08-06 03:52:51
【问题描述】:

我正在尝试获取两个文本框,每个文本框都有滚动条。但是,当我尝试这样做时:

from Tkinter import *

root = Tk()

s_start = Scrollbar(root)
t_start = Text(root, width=50, height=10)

t_start.focus_set()

s_start.pack(side=RIGHT, fill=Y)
t_start.pack(side=LEFT, fill=Y)

s_start.config(command=t_start.yview)
t_start.config(yscrollcommand=s_start.set)

s_end = Scrollbar(root)
t_end = Text(root, width=50, height=10)

t_end.focus_set()

s_end.pack(side=RIGHT, fill=Y)
t_end.pack(side=LEFT, fill=Y)

s_end.config(command=t_end.yview)
t_end.config(yscrollcommand=s_end.set)

root.mainloop()

发生这种情况:

如果不清楚,那是两个单独的文本框,右侧文本框功能绑定到内部滚动条,左侧文本框功能绑定到外部滚动条。

【问题讨论】:

    标签: python text scrollbar tkinter


    【解决方案1】:

    诀窍是使用框架并将滚动条添加到框架而不是根。

    from Tkinter import *
    
    root = Tk()
    
    left = Frame(root)
    right = Frame(root)
    
    t_start = Text(left, width=20)
    t_start.pack(side=LEFT, fill=Y)
    s_start = Scrollbar(left)
    s_start.pack(side=RIGHT, fill=Y)
    s_start.config(command=t_start.yview)
    t_start.config(yscrollcommand=s_start.set)
    
    t_end = Text(right, width=20)
    t_end.pack(side=LEFT, fill=Y)
    s_end = Scrollbar(right)
    s_end.pack(side=RIGHT, fill=Y)
    s_end.config(command=t_end.yview)
    t_end.config(yscrollcommand=s_end.set)
    
    left.pack(side=LEFT, fill=Y)
    right.pack(side=RIGHT, fill=Y)
    
    root.geometry("500x200")
    root.mainloop()
    

    【讨论】:

    • 完美。现在我如何给框架一个边框和一个高度?
    • 我固定了包装位置。
    • 好的,谢谢,那么即使在不活动的情况下,是否可以为框添加边框?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    • 1970-01-01
    • 2015-08-11
    • 2023-02-10
    • 2012-02-09
    • 2021-10-15
    • 2015-01-10
    相关资源
    最近更新 更多