Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Tkinter重塑画布无法面向对象工作_Python_Tkinter_Tkinter Canvas_Tkinter Layout - Fatal编程技术网

Python Tkinter重塑画布无法面向对象工作

Python Tkinter重塑画布无法面向对象工作,python,tkinter,tkinter-canvas,tkinter-layout,Python,Tkinter,Tkinter Canvas,Tkinter Layout,我对Tkinter还是一个新手,我正在尝试制作一个登录屏幕。功能是存在的,但是我希望我的画布是200x300px,但是这似乎不起作用。它返回给我一个画布,刚好适合按钮和输入字段。请帮忙 import tkinter as tk class Login_Screen: def __init__(self, master): self.master = master self.canvas = tk.Canvas(self.master, width=200, height=300

我对Tkinter还是一个新手,我正在尝试制作一个登录屏幕。功能是存在的,但是我希望我的画布是200x300px,但是这似乎不起作用。它返回给我一个画布,刚好适合按钮和输入字段。请帮忙

import tkinter as tk

class Login_Screen:
def __init__(self, master):
    self.master = master
    self.canvas = tk.Canvas(self.master, width=200, height=300)
    self.frame = tk.Frame(self.canvas)
    self.input_user_log = tk.Entry(self.frame)
    self.button1 = tk.Button(self.frame, text="Log in", width=15, command=self.return_login_info)
    self.input_user_log.pack()
    self.canvas.pack()
    self.button1.pack()
    self.frame.pack()

def return_login_info(self):
    print(self.input_user_log.get())


root = tk.Tk()
app = Login_Screen(root)
root.mainloop()
使用
master
上的
geometry()
方法


将tkinter作为tk导入
类登录屏幕:
定义初始(自我,主):
self.master=master
自身主几何(“300x200”)
self.canvas=tk.canvas(self.master)
self.frame=tk.frame(self.canvas)
self.input\u user\u log=tk.Entry(self.frame)
self.button1=tk.Button(self.frame,text=“登录”,width=15,command=self.return\u login\u info)
self.input\u user\u log.pack()
self.canvas.pack()
self.button1.pack()
self.frame.pack()

为什么要在画布中放置框架?关于这一点,为什么要使用画布呢?我在许多其他线程和yt视频中看到了将画布放入root。我把框架放在画布中,因为我想把主页也用于其他事情,我认为这将是一个划分它们的好方法。你认为我应该怎么做?实际上你应该使用
self.canvas.create_window(0,0,window=self.frame,anchor='nw')
而不是
self.frame.pack()