tkinter:我的滚动条隐藏了一些字符

问题描述 投票:0回答:2

我的程序中有一个主窗口作为文本小部件,右侧有一个垂直滚动条,沿其整个高度 - 使用通常的代码:

yscrollbar=Scrollbar(mytext, orient=VERTICAL, command=mytext.yview)
mytext["yscrollcommand"]=yscrollbar.set

令人烦恼的是,当我插入/输入文本时,该行返回之前的最后 1-2 个字符被滚动条隐藏。

有一些简单的方法可以告诉文本小部件在点击滚动条之前返回该行吗?

PS 主窗口是用户可调整大小的,所以我正在寻找一些通用的解决方案......

tkinter scrollbar
2个回答
4
投票

根据您对问题的回答,问题在于您将滚动条放置在文本小部件的内部而不是旁边。解决方案是为文本小部件和滚动条指定相同的父级。

如果您想要文本小部件中滚动条的视觉效果,请创建一个框架并为其指定边框宽度为 1 和浮雕“凹陷”。然后,将文本小部件的边框宽度设置为零。将文本小部件和滚动条都放置在该框架中,滚动条将具有位于文本小部件内部的外观。


0
投票

我是Python社区的新手。六个月前我开始学习如何用 python 编码。我最近遇到了文本小部件和使用垂直滚动条的问题,该滚动条是文本隐藏在垂直滚动条下的!并在 stackoverflow.com 中找到了回复,我想分享我的解决了该问题的回复。希望这可以帮助像我这样的新人坚定地向前迈进。这是我的代码:

import os
from tkinter import *

os.system('cls||clear')

window = Tk()
window.title("Text Widget with Vertical Scrollbar")

frame = Frame(window, width=300, 
height=180,borderwidth=1,bg="khaki2")
frame.pack_propagate(False)  # Prevent the frame from resizing 
based on the Text widget's size
frame.pack()

v_scroll_bar = Scrollbar(frame,orient=VERTICAL,bg="navy") 
v_scroll_bar.pack(side = RIGHT, fill="y")

txt = Text(frame,wrap='word')
txt.pack(expand=True, fill='both') 
txt.config(yscrollcommand=v_scroll_bar.set)

v_scroll_bar.config(command=txt.yview) 

window.geometry("750x550")
window.mainloop()
© www.soinside.com 2019 - 2024. All rights reserved.