python中grid_python pack()和grid()方法在一起

我是python的新手所以请原谅我的Noob-ness.我试图在我的应用程序窗口底部创建一个状态栏,但似乎每次我在同一个文件中一起使用pack()和grid()方法时,主应用程序窗口都不会打开.当我注释掉说明statusbar.pack(side = BOTTOM,fill = X)的行时,我的应用程序窗口打开正常,但是如果我把它留在里面就不行,而且如果我注释掉任何使用网格方法的行窗口打开,状态栏.看起来我只能使用pack()或grid(),但不能同时使用两者.我知道我应该可以使用这两种方法.有什么建议?这是代码:

from Tkinter import *

import tkMessageBox

def Quit():

answer = tkMessageBox.askokcancel('Quit', 'Are you sure?')

if answer:

app.destroy()

app = Tk()

app.geometry('700x500+400+200')

app.title('Title')

label_1 = Label(text = "Enter number")

label_1.grid(row = 0, column = 0)

text_box1 = DoubleVar()

input1 = Entry(app, textvariable = text_box1)

input1.grid(row = 0, column = 2)

statusbar = Label(app, text = "", bd = 1, relief = SUNKEN, anchor = W)

statusbar.pack(side = BOTTOM, fill = X)

startButton = Button(app, text = "Start", command = StoreValues).grid(row = 9, column = 2, padx = 15, pady = 15)

app.mainloop()

任何帮助表示赞赏!谢谢!

解决方法:

您不能在具有相同主控的小部件上同时使用pack和grid.第一个将调整小部件的大小.另一个将看到变化,并调整一切以适应它自己的约束.第一个将看到这些更改并再次调整所有内容以适应其约束.另一个将无限制地看到变化等等.他们将陷入永恒的争夺至高无上的斗争中.

虽然技术上可行,如果你真的,真的知道你正在做什么,无论出于各种意图和目的,你都不能将它们混合在同一个容器中.您可以在应用程序中将它们全部混合在一起,但对于给定的容器(通常是一个框架),您只能使用一个来管理容器的直接内容.

一种非常常见的技术是将GUI分成几部分.在您的情况下,您有一个底部状态栏和一个顶部“主”区域.因此,将状态栏打包在底部并创建一个框架,在其上方为GUI的主要部分打包.然后,其他一切都将主框架作为其父框架,并在该框架内,您可以使用网格或包或任何您想要的.

标签:python,grid,tkinter,pack

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值