微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Tkinter重塑画布不适用于面向对象

如何解决Tkinter重塑画布不适用于面向对象

我对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()

解决方法

geometry()上使用master方法。


import tkinter as tk

class Login_Screen:
    def __init__(self,master):
        self.master = master
        self.master.geometry("300x200")
        self.canvas = tk.Canvas(self.master)
        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()

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。