我正在用Tkinter编写一个简单的用户界面,似乎找不到错误.

Here is the outcome: enter image description here

代码是这样的:

window = tkinter.Tk()
window.title("Password Manager")
window.configure(padx=20, pady=20)

canvas = tkinter.Canvas(window)
canvas.configure(width=200, height=200)
image = tkinter.PhotoImage(file="logo.png")
canvas.create_image(100, 100, image=image)
canvas.grid(row=0, column=1)

website_label = tkinter.Label(text="Website:")
website_label.grid(row=1, column=0)

website_input = tkinter.Entry(width=35)
website_input.grid(row=1, column=1, columnspan=2)

email_username_label = tkinter.Label(text="Email/Username:")
email_username_label.grid(row=2, column=0)

email_username_input = tkinter.Entry(width=35)
email_username_input.grid(row=2, column=1, columnspan=2)

password_label = tkinter.Label(text="Password:")
password_label.grid(row=3, column=0)

password_input = tkinter.Entry(width=21)
password_input.grid(row=3, column=1)

generate_password_button = tkinter.Button(text="Generate Password")
generate_password_button.config(width=14)
generate_password_button.grid(row=3, column=2)

add_button = tkinter.Button(text="Add", width=21)
add_button.grid(row=4, column=1, columnspan=2)

window.mainloop()

我希望我的输入和按钮正确对齐,即密码输入放在上面的输入下面,生成密码按钮放在右边,安装在上面的输入的结尾.

我还期望添加按钮开始于上层输入的开始.

我遗漏了什么?

推荐答案

默认情况下,当使用grid时,小部件将在行和列中居中.这就是这里正在发生的事情.

最简单的解决方案是向每个小部件添加sticky属性.这可以用来让小部件的侧面"粘"到行或列的侧面.

例如,在下列语句中添加sticky="ew"(其中"ew"代表"East"、"West"):

website_input.grid(row=1, column=1, columnspan=2, sticky="ew")
email_username_input.grid(row=2, column=1, columnspan=2, sticky="ew")
password_input.grid(row=3, column=1, sticky="ew")

我个人认为最好的做法是始终 for each 小部件显式地声明sticky个值.

Python相关问答推荐

从DataFrame.apply创建DataFrame

当多个值具有相同模式时返回空

max_of_three使用First_select、second_select、

Pandas 滚动最接近的价值

rame中不兼容的d类型

不理解Value错误:在Python中使用迭代对象设置时必须具有相等的len键和值

为什么符号没有按顺序添加?

如何找到满足各组口罩条件的第一行?

如何记录脚本输出

大小为M的第N位_计数(或人口计数)的公式

使用@ guardlasses. guardlass和注释的Python继承

计算组中唯一值的数量

如何在Python中找到线性依赖mod 2

matplotlib图中的复杂箭头形状

python—telegraph—bot send_voice发送空文件

提高算法效率的策略?

当单元测试失败时,是否有一个惯例会抛出许多类似的错误消息?

Python日志(log)模块如何在将消息发送到父日志(log)记录器之前向消息添加类实例变量

如何将一组组合框重置回无 Select tkinter?

如何设置nan值为numpy数组多条件