在 Canvas tkinter 上动态更改滚动条长度
Make scrollbar change length dynamically on Canvas tkinter
我在 Python 中创建了一个程序,我通过 urllib2 调用请求一些 HTML 并将其打印在 Canvas 项目上。
HTML 源代码很长,所以我尝试在我的 canvas 中添加一个滚动条,但是打印文本时没有出现这个滚动条
有没有办法让滚动条动态改变尺寸检测文本长度?提前谢谢你
这是我的源代码:
from tkinter import *
import urllib.request
def getURL():
canvas.delete("all")
with urllib.request.urlopen(entry.get()) as response:
received_html = response.read()
print(received_html)
canvas.create_text(10,0,text=received_html, anchor=NW, width=700)
#Widget and item initialization
browser_window = Tk()
browser_window.geometry('900x700') # Size 900, 700
frame = Frame(browser_window) #frame
frame.pack(side=TOP, fill=BOTH, expand=5)
label = Label(frame, text= 'Inserisci URL:')
entry = Entry(frame)
canvas = Canvas(frame) #canvas
scrollbar = Scrollbar(frame, orient=VERTICAL, command=canvas.yview)
#Scrollbar on my canvas
entry.insert(END, "http://jesolo.it")
#canvas configure
canvas.configure(yscrollcommand=scrollbar.set, background='#ffffff',
scrollregion=canvas.bbox("all"))
button = Button(frame, text='Vai', command=getURL )
label.pack(side=TOP)
entry.pack(side=TOP)
button.pack(side=TOP)
scrollbar.pack(side=RIGHT, fill=Y) #Scrollbar pack
canvas.pack(side=LEFT, fill=BOTH, expand=5) #Canvas config
scrollbar.config(command=canvas.yview)
browser_window.mainloop()
将文本添加到 canvas 后,您需要更新 scrollregion
属性,以便 canvas 知道它的虚拟 space 应该有多少可滚动。
def getURL():
...
canvas.create_text(10,0,text=received_html, anchor=NW, width=700)
canvas.configure(scrollregion=canvas.bbox("all"))
我在 Python 中创建了一个程序,我通过 urllib2 调用请求一些 HTML 并将其打印在 Canvas 项目上。
HTML 源代码很长,所以我尝试在我的 canvas 中添加一个滚动条,但是打印文本时没有出现这个滚动条
有没有办法让滚动条动态改变尺寸检测文本长度?提前谢谢你
这是我的源代码:
from tkinter import *
import urllib.request
def getURL():
canvas.delete("all")
with urllib.request.urlopen(entry.get()) as response:
received_html = response.read()
print(received_html)
canvas.create_text(10,0,text=received_html, anchor=NW, width=700)
#Widget and item initialization
browser_window = Tk()
browser_window.geometry('900x700') # Size 900, 700
frame = Frame(browser_window) #frame
frame.pack(side=TOP, fill=BOTH, expand=5)
label = Label(frame, text= 'Inserisci URL:')
entry = Entry(frame)
canvas = Canvas(frame) #canvas
scrollbar = Scrollbar(frame, orient=VERTICAL, command=canvas.yview)
#Scrollbar on my canvas
entry.insert(END, "http://jesolo.it")
#canvas configure
canvas.configure(yscrollcommand=scrollbar.set, background='#ffffff',
scrollregion=canvas.bbox("all"))
button = Button(frame, text='Vai', command=getURL )
label.pack(side=TOP)
entry.pack(side=TOP)
button.pack(side=TOP)
scrollbar.pack(side=RIGHT, fill=Y) #Scrollbar pack
canvas.pack(side=LEFT, fill=BOTH, expand=5) #Canvas config
scrollbar.config(command=canvas.yview)
browser_window.mainloop()
将文本添加到 canvas 后,您需要更新 scrollregion
属性,以便 canvas 知道它的虚拟 space 应该有多少可滚动。
def getURL():
...
canvas.create_text(10,0,text=received_html, anchor=NW, width=700)
canvas.configure(scrollregion=canvas.bbox("all"))