Как автоматически добавить полосу прокрутки в окно tkinter, когда оно становится большим для экрана? - PullRequest
0 голосов
/ 08 марта 2019

Я хочу отобразить список файлов, обрабатываемых из каталога. Если в каталоге много файлов, окно становится больше экрана и обрезается без добавления полосы прокрутки. Я видел несколько решений для добавления полос прокрутки к виджетам, но я не видел ничего, что могло бы управлять всем окном или как его отображать, только когда содержимое не подходило бы, как большинство других окон приложения. Есть ли команда, позволяющая операционной системе управлять при появлении полосы прокрутки? Вот код, который у меня есть, на данный момент он просто отображает имена файлов, но я хочу добавить, что с ними сделано позже.

import tkinter
from pathlib import Path

def start():
    progressWindow = tkinter.Toplevel(mainWindow)
    tkinter.Label(progressWindow,text="File name").grid(row=0, column=0,sticky="w")
    tkinter.Label(progressWindow,text="Analysis results").grid(row=0, column=1, sticky="w")
    tkinter.Label(progressWindow, text="File moved and renamed").grid(row=0, column=2, sticky="w")
    gridRow = 1
    sourcePath = Path(r"C:\Users\Sulley\Downloads")
    for file in sourcePath.iterdir():
        if not file.is_file():
            continue
        if not file.suffix == ".pdf":
            continue
        tkinter.Label(progressWindow,text=file.name).grid(row=gridRow,column=0, sticky="w")
        gridRow += 1
    tkinter.Button(progressWindow,text="Done", command=progressWindow.destroy).grid(row=gridRow, column=1)

mainWindow = tkinter.Tk()
mainWindow.title("Sort Bill PDFs")
# Go/cancel
tkinter.Button(mainWindow,text="Cancel", command=quit).pack()
tkinter.Button(mainWindow,text="Go!", command=start).pack()
mainWindow.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...