如何在Python Tkinter中将画布的宽度设置为屏幕的宽度?

时间:2019-09-01 09:43:00

标签: python canvas tkinter screen

我在tkinter中有一个需要跨越屏幕整个宽度的画布,但是无法使它正常工作。

我尝试将屏幕宽度设置为变量,并将其作为类中的参数传递给我,但我却遇到了错误,我尝试将root.winfo_screenwidth设置为self.winfo_screenwidth,但它只是抛出了一个我错了,我在www上寻找答案,但是我看到的最接近的东西是如何将root设置为屏幕尺寸。

这是我的代码:

import tkinter as tk


class Window(tk.Frame):
    def __init__(self, master, **kwargs):
        super().__init__(master, **kwargs)

        canvas = tk.Canvas(self, width="", height=100) #How to set the width to the screen width?
        canvas.config(bg="#505050")
        canvas.pack()


def mainloop_scw():
    root = tk.Tk()
    root.title("Editor - Adventure")
    screenwidth = root.winfo_screenwidth()
    screenheight = root.winfo_screenheight()
    root.geometry("%sx%s" %(screenwidth, screenheight))
    root.config(bg="#303030")
    app = Window(root)
    app.config(bg="#303030")
    app.pack(fill=tk.BOTH, expand=True, padx=10, pady=10)
    root.mainloop()


if __name__ == "__main__":
    mainloop_scw()

有人知道我如何将canvas的宽度设置为screenwidth吗?

1 个答案:

答案 0 :(得分:-1)

您不需要显式设置画布的宽度。 pack具有一些选项,可用于强制画布占据屏幕的整个宽度。

canvas.pack(fill="x")