【问题标题】:Difficulty setting window dimension in constructor tkinter在构造函数 tkinter 中难以设置窗口尺寸
【发布时间】:2019-07-07 03:59:03
【问题描述】:

我想让窗口初始化为设定的尺寸,例如 600x500。我很难通过 GUI_window 类中的构造函数执行此操作。

我尝试将参数宽度 = 600 高度 = 500 输入

tk.Tk.__init__(HERE) 

但它会导致错误:“init() 得到了一个意外的关键字参数 'width'。” 我也试过把它写在初始调用参数中

GUI_window(width = 600, height = 500)

但是我收到了同样的错误信息

tkinter 是这样导入的:

import tkinter as tk

这是发生错误的类,(此块的第 2 行)

class GUI_window(tk.Tk):
    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)

        container = tk.Frame(self)

        container.place(relx = 0, rely = 0, relwidth = 1, relheight = 1)

        self.frames = {}

我在程序结束时用这些行调用方法。

GUI = GUI_window()
GUI.mainloop()

我希望窗口大小适合我输入的值,但我收到了上述错误消息。如何在此对象格式中将窗口设置为特定大小而不会出现此错误?

【问题讨论】:

  • GUI.geometry("600x500")
  • 你也可以用geometry("600x500+100+200")设置位置(100, 200)

标签: python tkinter


【解决方案1】:

要设置窗口大小,您必须使用

 GUI.geometry("600x500")

或者在构造函数内部

self.geometry("600x500")

import tkinter as tk

class GUI_window(tk.Tk):
    def __init__(self, *args, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)

        self.geometry("600x500")

        container = tk.Frame(self)

        container.place(relx = 0, rely = 0, relwidth = 1, relheight = 1)

        self.frames = {}

GUI = GUI_window()
GUI.mainloop()

你可以在构造函数中发送它

GUI_window(width=600, height=500) 

但稍后您必须在 tk.Tk.__init__(self, *args, **kwargs) 中使用 **kwargs 之前从 **kwargs 中删除 widthheight


编辑: 版本使用width=600, height=500 并且使用kwargs 没有问题。如果你想在没有width=600, height=500 的情况下使用GUI_window(),它需要__init__ 中的默认值。

import tkinter as tk

class GUI_window(tk.Tk):
    def __init__(self, *args, width=300, height=300, **kwargs):

        tk.Tk.__init__(self, *args, **kwargs)

        self.geometry("{}x{}".format(width, height))

        container = tk.Frame(self)

        container.place(relx = 0, rely = 0, relwidth = 1, relheight = 1)

        self.frames = {}

GUI = GUI_window(width=600, height=500)
#GUI = GUI_window()
GUI.mainloop()

【讨论】:

  • 我在答案中添加了新示例。
猜你喜欢
  • 2014-10-30
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-05
  • 2010-10-26
相关资源
最近更新 更多