【问题标题】:How do I place the widgets in the canvas?如何将小部件放置在画布中?
【发布时间】:2018-04-06 17:10:13
【问题描述】:

我正在使用 tkinter 为我的学校创建一个项目,该项目专注于牙科诊所。我在此处发布的代码会打开一个窗口,要求患者登录或注册。除画布部分外,该功能正常工作。函数执行时;标签、文本字段和按钮移出我放在根窗口中的画布,如输出的屏幕截图所示。我应该进行哪些更改以使标签、文本字段和按钮在画布中而不是在画布之外?

def patclick(self):
       root = Tk()
       root.title("INSERT DETAILS")
       c = Canvas(root, bg="#dfe3ee")
       c.grid()
       titlelabel = Label(root, text="Please Login to continue")
       titlelabel.grid(row=0, columnspan=2)
       patnamelabel = Label(root, text="Full Name")
       patnamelabel.grid(row=1, column=0, sticky=E)
       self.patnameentry = Entry(root)
       self.patnameentry.grid(row=1, column=1)
       patpwlabel = Label(root, text="Password")
       patpwlabel.grid(row=2, column=0, sticky=E)
       self.patpwentry = Entry(root, show='*')
       self.patpwentry.grid(row=2, column=1)
       patloginbutt = Button(root, text="Login")
       patloginbutt.grid(row=3, columnspan=2)
       newpatlabel = Label(root, text="New Patient?")
       newpatlabel.grid(row=4, columnspan=2)
       patsignupbutt = Button(root, text="Sign Up")
       patsignupbutt.grid(row=5, columnspan=2)

The output after the function is executed

【问题讨论】:

  • 你认为LabelEntryButton构造函数的第一个参数是什么?您将root 作为参数传递的那个?它可能是放置小部件的父级吗?

标签: python-3.x tkinter tkinter-canvas tkinter-layout


【解决方案1】:

将小部件c而不是root作为第一个参数传递,它们将被放入其中:

widget=Label(c, text='whatever')

然后,当您将小部件传递给几何管理器时,它将位于c

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2018-05-17
    • 2011-06-25
    • 1970-01-01
    • 2021-01-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多