开发者社区> 问答> 正文

TKinter,将小部件放置在与背景图像对齐的窗口的某些部分

我想把我的按钮和文字整齐地放在“登录”框的范围内。“登录”框实际上是我用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

展开
收起
kun坤 2019-12-29 21:34:11 413 0
1 条回答
写回答
取消 提交回答
  • 我的建议是创建一个透明背景的框架。您将这个框架放置(使用place layout manager),以便它精确地定位在中心的矩形上。然后可以使用标准布局管理器将按钮添加到透明框架中。这种安排会更灵活,更容易理解。 在TkInter版本>8.6中支持具有透明背景的小部件,除非您的Python安装非常旧,否则您可能会有这样的小部件。有关更多信息,请参见:是否有办法使用Tkinter创建透明窗口?

    2019-12-29 21:34:17
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载