我想把我的按钮和文字整齐地放在“登录”框的范围内。“登录”框实际上是我用TKinter加载的背景PNG图像的一部分。我想把我的小部件放在后台的登录框里。我目前使用的是grid(),但由于某些原因,它们没有与登录框对齐。我如何调整我的代码得到登录框内的东西?
def build_login_screen(root):
background_image = PhotoImage(file="./loginScreen.png", name="background_image")
background_label = Label(root, image=background_image, name="background_label")
background_label.place(x=0, y=0, relwidth=1, relheight=1)
background_label.image = background_image
login_button = Button(root, text="Login", name="login_button", command=lambda: login(root))
login_button.grid(row=5, column=1)
quit_button = Button(root, text="Quit", name="quit_button", command=root.destroy)
quit_button.grid(row=8, column=1)
server_select = Combobox(root, name='server_select')
server_select['values'] = (remote_server, local_server)
server_select.current(0)
server_select.grid(row=4, column=1)
server_select.bind("<<ComboboxSelected>>", clickServer)
label_server_status = Label(root, padx=50, text="Checking server status..", name="label_server_status")
label_server_status.grid(row=4, column=2)
label_server_status_value = Label(root, padx=50, text=server_availability, name="label_server_status_value")
label_server_status_value.grid(row=4, column=3)
问题来源StackOverflow 地址:/questions/59379893/tkinter-place-widgets-on-certain-parts-of-the-window-aligning-with-the-backgrou
我的建议是创建一个透明背景的框架。您将这个框架放置(使用place layout manager),以便它精确地定位在中心的矩形上。然后可以使用标准布局管理器将按钮添加到透明框架中。这种安排会更灵活,更容易理解。 在TkInter版本>8.6中支持具有透明背景的小部件,除非您的Python安装非常旧,否则您可能会有这样的小部件。有关更多信息,请参见:是否有办法使用Tkinter创建透明窗口?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。