Python Tkinter重塑画布无法面向对象工作
我对Tkinter还是一个新手,我正在尝试制作一个登录屏幕。功能是存在的,但是我希望我的画布是200x300px,但是这似乎不起作用。它返回给我一个画布,刚好适合按钮和输入字段。请帮忙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
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()
。