【问题标题】:create a scrollbar on entry with cavnas, python tkinter使用 cavnas,python tkinter 在条目上创建滚动条
【发布时间】:2022-01-04 23:24:34
【问题描述】:

我正在尝试在画布上创建的条目上放置一个滚动条.. 我试过这段代码

from tkinter import *

root = Tk()
root.geometry('400x600')
root.resizable(0,0)

page = Canvas(root, width=400, height=600, bd=0, highlightthickness=0,scrollregion=(0,0,500,500))
MyImage1 = PhotoImage(file='Study With4.png')
CanvasImage = page.create_image(0,0,image= MyImage1, anchor='nw')
entry =Text(page,height=29,width =46,wrap=WORD,bg='#F8F8F8')
scroll = Scrollbar(entry, orient=VERTICAL)
scroll.pack(side=RIGHT, fill=Y)
scroll.config(command=page.yview)
page.config(yscrollcommand=scroll.set)
page.create_window(200,285, window=entry)
page.pack()
mainloop()

但它不起作用,我不知道问题出在哪里。

【问题讨论】:

  • 如果文本框在滚动区域内,滚动条将被停用。

标签: python tkinter canvas scrollbar tkinter-entry


【解决方案1】:

我对你的代码做了最小的改动,最大的改动是创建了一个名为“label”的Frame 包含TextScrollbar 然后将其插入Canvas 窗口。

您的滚动对象未正确定义,导致页面和条目对象混淆。

from tkinter import *

root = Tk()
root.geometry('500x600')
root.resizable(0,0)

page = Canvas(
    root, width = 500, height = 600, bd = 0,
    highlightthickness = 0,scrollregion = (0,0,1000,1000))
page.pack(side = LEFT, fill = BOTH, expand = True)

MyImage1 = PhotoImage(file='Study With4.png')
CanvasImage = page.create_image(0, 0, image = MyImage1, anchor = NW)

label = Frame(root)
label.pack(fill = BOTH, expand = True)

entry = Text(label, height = 29, width = 46, wrap = NONE, bg = '#F8F8F8')
entry.pack(side = LEFT, fill = BOTH, expand = True)

scroll = Scrollbar(label, orient = VERTICAL)
scroll.pack(side=RIGHT, fill=Y)
scroll.config(command = entry.yview)
entry.config(yscrollcommand = scroll.set)

page.pack()
page.create_window(25, 25, window = label, anchor = NW)

mainloop()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-12-02
    • 2013-03-25
    • 2018-04-25
    • 1970-01-01
    相关资源
    最近更新 更多