【问题标题】:Can't align horizontal scrollbar properly无法正确对齐水平滚动条
【发布时间】:2021-11-02 21:03:23
【问题描述】:

这里是 Python 初学者。水平滚动条无法正常工作:它不会拉伸整个窗口宽度。但是垂直滚动条和其他一切都可以正常工作。可能是什么问题?

import tkinter
from tkinter import *
from tkinter import ttk
from PIL import Image, ImageTk

def listwindow():
    list_window = Toplevel()

    list_window.geometry("1000x300")
    list_window.title("List Presentation")
    list_window.config(background="#232323")

    main_frame = Frame(list_window)
    main_frame.pack(fill=BOTH, expand=1)

    mcanvas = Canvas(main_frame)
    mcanvas.pack(side=LEFT, fill=BOTH, expand=1)

    mscrollbar = ttk.Scrollbar(main_frame, orient=HORIZONTAL, command=mcanvas.xview)
    mscrollbar.pack(side=BOTTOM, fill=X)

    mscrollbar2 = ttk.Scrollbar(main_frame, orient=VERTICAL, command=mcanvas.yview)
    mscrollbar2.pack(side=RIGHT, fill=Y)

    mcanvas.configure(xscrollcommand=mscrollbar.set)
    mcanvas.bind('<Configure>', lambda e: mcanvas.configure(scrollregion=mcanvas.bbox("all")))

    mcanvas.configure(yscrollcommand=mscrollbar2.set)
    mcanvas.bind('<Configure>', lambda e: mcanvas.configure(scrollregion=mcanvas.bbox("all")))

    second_frame = Frame(mcanvas)

    mcanvas.create_window((0, 0), window=second_frame, anchor="nw")

    for i in range(len(googleimg.searchlist)):
        globals()["itemImage"+str(i + 1)] = PhotoImage(file="D:\\Photos\\listcreator\\" + str(googleimg.targetpath) + "\\resized\\"+str(i+1)+".png")
        globals()["labelImage" + str(i + 1)] = Label(second_frame,image=globals()["itemImage"+str(i+1)]).grid(row=0,column=i)

    list_window.mainloop()

【问题讨论】:

标签: python tkinter scrollbar


【解决方案1】:

调用.pack()的顺序很重要:

mscrollbar.pack(side=BOTTOM, fill=X)
mscrollbar2.pack(side=RIGHT, fill=Y)
mcanvas.pack(side=LEFT, fill=BOTH, expand=1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-15
    • 1970-01-01
    • 2021-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-21
    • 2012-09-16
    相关资源
    最近更新 更多