鱼C论坛

 找回密码
 立即注册
查看: 1782|回复: 3

[已解决]关于tkinter组件中的 Text与Scrollbar组件的滚动条相关问题

[复制链接]
发表于 2020-8-23 00:13:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
关于tkinter组件中的 Text与Scrollbar组件的滚动条相关问题
先描述下遇到的问题:
在使用Scrollbar滚动条组件的时候是可以通过图例看出是有上下一块空间滑块对吧!
然后在与text文本联动就没有这个长长的滑块了,是因为跟text联动才会这样?还是我写的有疏漏?
恳请各位帮忙看看 具体是哪里没弄好,或者是本身是这样!

                               
登录/注册后可看大图


                               
登录/注册后可看大图


                               
登录/注册后可看大图


关于代码中图片 如果有需要可以直接通过下面图片提取:

                               
登录/注册后可看大图

下面代码部分:
import tkinter

# text组件案例之一插入按钮及图片
root = tkinter.Tk()
root.title('text组件')
count = 0


def fun1():
    global count
    count += 1
    text1.insert(tkinter.INSERT, str(count) + ' ')


def fun2():
    text1.image_create(tkinter.INSERT, image=photo)


frame1 = tkinter.Frame(root)
frame1.grid(row=1, column=1)
frame2 = tkinter.Frame(root)
frame2.grid(row=2, column=1)
frame3 = tkinter.Frame(root)
frame3.grid(row=1, column=2, rowspan=2)

sb = tkinter.Scrollbar(frame3)
sb.pack(fill=tkinter.Y)

b1 = tkinter.Button(frame1, text='我是文本外按钮插入数字', command=fun1)
b1.pack()

text1 = tkinter.Text(frame2, width=30, height=40, yscrollcommand=sb.set)
text1.pack()
text1.insert(tkinter.INSERT, '我是光标后插入文本内容\n')

b2 = tkinter.Button(text1, text='我是文本内按钮插入图片', command=fun2)
b2.pack()
text1.window_create(tkinter.INSERT, window=b2)

sb.config(command=text1.yview)

photo = tkinter.PhotoImage(file=r'E:\PycharmProjects\untitled2\project_mon_8\day_16\小屁孩.jpg')
root.mainloop()
最佳答案
2020-8-23 00:23:40


你 text 组件是框架 2 的 ,你滚轮组件是框架 3 的,自然匹配不到 text 组件的拉伸情况

改成框架 2 , side 设置偏右即可
import tkinter

# text组件案例之一插入按钮及图片
root = tkinter.Tk()
root.title('text组件')
count = 0


def fun1():
    global count
    count += 1
    text1.insert(tkinter.INSERT, str(count) + ' ')


def fun2():
    text1.image_create(tkinter.INSERT, image=photo)


frame1 = tkinter.Frame(root)
frame1.grid(row=1, column=1)
frame2 = tkinter.Frame(root)
frame2.grid(row=2, column=1)


sb = tkinter.Scrollbar(frame2)
sb.pack(side=tkinter.RIGHT,fill=tkinter.Y)

b1 = tkinter.Button(frame1, text='我是文本外按钮插入数字', command=fun1)
b1.pack()

text1 = tkinter.Text(frame2, width=30, height=40, yscrollcommand=sb.set)
text1.pack()
text1.insert(tkinter.INSERT, '我是光标后插入文本内容\n')

b2 = tkinter.Button(text1, text='我是文本内按钮插入图片', command=fun2)
b2.pack()
text1.window_create(tkinter.INSERT, window=b2)

sb.config(command=text1.yview)

photo = tkinter.PhotoImage(file=r'E:\PycharmProjects\untitled2\project_mon_8\day_16\小屁孩.jpg')
root.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-23 00:23:40 | 显示全部楼层    本楼为最佳答案   


你 text 组件是框架 2 的 ,你滚轮组件是框架 3 的,自然匹配不到 text 组件的拉伸情况

改成框架 2 , side 设置偏右即可
import tkinter

# text组件案例之一插入按钮及图片
root = tkinter.Tk()
root.title('text组件')
count = 0


def fun1():
    global count
    count += 1
    text1.insert(tkinter.INSERT, str(count) + ' ')


def fun2():
    text1.image_create(tkinter.INSERT, image=photo)


frame1 = tkinter.Frame(root)
frame1.grid(row=1, column=1)
frame2 = tkinter.Frame(root)
frame2.grid(row=2, column=1)


sb = tkinter.Scrollbar(frame2)
sb.pack(side=tkinter.RIGHT,fill=tkinter.Y)

b1 = tkinter.Button(frame1, text='我是文本外按钮插入数字', command=fun1)
b1.pack()

text1 = tkinter.Text(frame2, width=30, height=40, yscrollcommand=sb.set)
text1.pack()
text1.insert(tkinter.INSERT, '我是光标后插入文本内容\n')

b2 = tkinter.Button(text1, text='我是文本内按钮插入图片', command=fun2)
b2.pack()
text1.window_create(tkinter.INSERT, window=b2)

sb.config(command=text1.yview)

photo = tkinter.PhotoImage(file=r'E:\PycharmProjects\untitled2\project_mon_8\day_16\小屁孩.jpg')
root.mainloop()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-23 00:30:22 | 显示全部楼层
Twilight6 发表于 2020-8-23 00:23
你 text 组件是框架 2 的 ,你滚轮组件是框架 3 的,自然匹配不到 text 组件的拉伸情况

改成框架 2  ...

以为框架只是为了方便组件位置和归类,原来还影响到了组件之间是否能联动问题!
实在感谢大半夜还答题。谢谢了!

点评

客气了~  发表于 2020-8-23 09:03
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 08:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表