我试图创建一个tkinter窗口,要求用户输入用户名和密码。我的问题:我无法在输入框旁边正确对齐用户名和密码标签。他们都坐在入口区域的顶部。我究竟做错了什么?如何将标签放在输入字段的左侧?这是我的代码:
#Import Tkinter module
import tkinter.messagebox
from tkinter import *
#Create a window
tk1 = Tk()
#Window Size
tk1.geometry("500x500")
#Title window
tk1.title("Username and Password")
#Set background color using hex code
tk1.configure(background = "#618f56")
#Create a Label
lbl = Label(tk1, text="Welcome! Please enter your Username and Password.", bg="#618f56")
#Create a UN entry box
ent1 = Entry(tk1)
lbl1 = Label(tk1, text="Username")
#Create a Password entry box
ent2 = Entry(tk1)
lbl2 = Label(tk1, text="Password")
#Create a button
btn = Button(tk1, text="Submit", bg="#ffffff")
#Widgets
lbl.pack()
lbl1.pack()
lbl2.pack()
ent1.pack()
ent2.pack()
btn.pack()
#Draw window and start application
tk1.mainloop()
由于
答案 0 :(得分:0)
import tkinter
from tkinter import *
class GUI:
def __init__(self):
self.root = tkinter.Tk()
self.root.geometry('500x500')
# Labels
first_Label = Label(self.root, text='First Label')
second_Label = Label(self.root, text='Second Label')
# Entries
first_entry = Entry(self.root)
second_entry = Entry(self.root)
# Packing
first_Label.grid(column=1, row=1)
second_Label.grid(column=1, row=2)
first_entry.grid(column=2, row=1)
second_entry.grid(column=2, row=2)
def start(self):
self.root.mainloop()
appstart = GUI()
appstart.start()
使用网格方法更有效地组织小部件可能会有所帮助。您可以在打包区域中看到如何选择用于放置窗口小部件的列和行。在您的代码中,小部件正在相互打包。这段代码将生成两个标签和两个输入框。具体来说,一个标签,然后是一个条目,它是正确的。您显然可以更多地操纵它们,但我会去effbot.org寻找一个好的资源。