Python tkinter scrollbar用在text上面出现问题,怎么解决


from tkinter import *

r=Tk()
r.title('try')

scrollbary=Scrollbar(r,orient=VERTICAL)
scrollbarx=Scrollbar(r,orient=HORIZONTAL)

text=Text(r,wrap=NONE)

scrollbary.pack(side=RIGHT,fill=Y)
scrollbarx.pack(side=BOTTOM,fill=X)

text.pack(side=LEFT,padx=10,pady=10)

scrollbary.config(command=text.yview)
scrollbarx.config(command=text.xview)

text.config(yscrollcommand=scrollbary.set)
text.config(xscrollcommand=scrollbarx.set)


r.mainloop()

运行是这样的

img


希望是这样的滚轮

img

这没得办法解决,因为你当前的文本框不需要滚动范围,滚动条的滚动块自然不出现。你可以认为是tkinter的特性。

可行的解决办法就是你自己绘制一个滚动条,你可以查看我的TinUI(基于tkinter的绘制型组件框架)专栏。

TinUI文本框:https://blog.csdn.net/tinga_kilin/article/details/122827474

TinUI绘制滚动条:https://blog.csdn.net/tinga_kilin/article/details/122821064

TinUI可以通过pip从pypi安装。其中,你可以使用BasicTinUI类以及绘制文本框时添加scroll参数来完成这个效果。无论在哪,TinUI的滚动条是windows11风格的。

确实同楼上所说。如果非要可以换个简单点的思路,没有内容或者内容行数不够计算需要填充多少换行符,然后换行符拼接到显示内容