首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在可滚动框架内居中并展开小部件

在可滚动框架内居中并展开小部件
EN

Stack Overflow用户
提问于 2021-10-07 00:55:17
回答 1查看 35关注 0票数 0

我在这里有这个代码:

代码语言:javascript
运行
AI代码解释
复制
root = Tk() 
    container = Frame(root)
    canvas = Canvas(container, borderwidth = 0, highlightthickness = 0, width=500, height=500, bg = "white")
    scrollbar = Scrollbar(container, orient="vertical", command=canvas.yview)
    scrollable_frame = Frame(canvas)
    scrollable_frame.bind(
        "<Configure>",
        lambda e: canvas.configure(
            scrollregion=canvas.bbox("all")
        )
    )

    canvas.create_window((0, 0), window=scrollable_frame)

    canvas.configure(yscrollcommand=scrollbar.set)


    root.geometry("700x600")
    coordF=LabelFrame(scrollable_frame,text='c')
    coordF.pack(side = 'top')
    Label(coordF,text='q',font=('Bahnschrift SemiLight', 15)).grid(row=0,column=0)
    Label(coordF,text='d:',font=('Bahnschrift SemiLight', 15)).grid(row=1,column=0)
    v = StringVar(value=None)
    e1=Entry(coordF, textvariable=v)
    e1.grid(row=0,column=1)
    e2=Entry(coordF)
    e2.grid(row=1,column=1)
    scalF=LabelFrame(scrollable_frame,text='d')
    scalF.pack()
    e3=Button (scalF, text='f',font=('Bahnschrift SemiLight', 12),command=random, bg="grey")
    e3.pack(side='top')
    chosenFile = Label(scalF,textvariable=file_result,font=('Bahnschrift SemiLight', 10), wraplength=300)
    chosenFile.pack(side='top')
    scalOut=LabelFrame(scrollable_frame,text='hg')
    scalOut.pack()

    Label(scalOut,textvariable=xt,font=('Bahnschrift SemiLight', 12), wraplength=450).pack()
    Label(scalOut,textvariable=frr,font=('Bahnschrift SemiLight', 12), wraplength=450).pack()
    container.pack(expand=True)
    canvas.pack(side="left", fill="both")
    scrollbar.pack(side="right", fill="y")
    optF=LabelFrame(root,text="zh")
    optF.pack(side = 'top')  

    

    root.mainloop()

可滚动框架中的元素始终显示在可滚动框架的左上角。我尝试了网格和包,使他们在中心和扩展,但没有移动。好吧,也许我不知道该把代码放在哪里。无论如何,我希望小部件在可滚动的框架中居中并彼此展开。这可能会澄清这个想法:

EN

回答 1

Stack Overflow用户

发布于 2021-10-07 02:18:30

您可以使用canvas.itemconfig()scrollable_frame的宽度扩展为与画布的宽度相同

代码语言:javascript
运行
AI代码解释
复制
frame_id = canvas.create_window((0, 0), window=scrollable_frame, anchor='nw')
canvas.itemconfig(frame_id, width=canvas.winfo_reqwidth())

因为使用了.pack(side='top'),所以scrollable_frame中的那些帧将水平居中。

对于可垂直滚动的框架,在垂直方向上扩展和居中是没有意义的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69478232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档