当前位置: 首页 > 面试题库 >

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

厍建义
2023-03-14
问题内容

我是python的新手,请原谅我的Noob-
ness。我试图在应用程序窗口的底部创建一个状态栏,但是似乎每次我在同一文件中同时使用pack()和grid()方法时,主应用程序窗口都不会打开。当我注释掉显示statusbar.pack(side
= BOTTOM,fill =
X)的行时,我的应用程序窗口可以很好地打开,但是如果我将其保留在里面,也可以注释掉任何使用grid方法的行该窗口随状态栏打开。看来我只能使用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()

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


问题答案:

具有相同母版的窗口小部件不能同时使用packgrid。第一个将调整小部件的大小。另一个将看到更改,并调整所有大小以适应其自身的约束。第一个将看到这些更改,并再次调整所有内容的大小以适应
约束。另一个将看到更改,依此类推。他们将陷于永恒的至高无上的斗争中。

从技术上来说,如果您确实 真的 知道自己在做什么,则出于所有意图和目的,您不能将它们混合 在同一容器中
。您可以在应用程序中将它们全部混合在一起,但是对于给定的容器(通常是框架),只能使用一个容器来管理容器的直接内容。

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



 类似资料:
  • 本文向大家介绍asp.net+Ligerui实现grid导出Excel和Word的方法,包括了asp.net+Ligerui实现grid导出Excel和Word的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了asp.net+Ligerui实现grid导出Excel和Word的方法。分享给大家供大家参考,具体如下: 下面采用的导EXCEL方法,适合不翻页的grid,而且无需再读一次数据

  • grid-template|auto/rows(行)|columns (列) 开始学习 Grid 要做的第一件事情就是划格子,本章主要给大家讲解如何画格子。掌握好这个掌握好这个技能是学习 Grid 布局的基础。 1. 官方定义 grid-template-columns 该属性是基于 网格列. 的维度,去定义网格线的名称和网格轨道的尺寸大小。 grid-template-rows 该属性是基于 网

  • ionic基于flexbox制作了一套网格框架。 <ion-col width-10>This column will take 10% of space</ion-col> 列的百分比属性: width-10 10% width-20 20% width-25 25% width-33 33.3333% width-50 50% width-67 66.6666% width-75 75% wi

  • 这是一个显示数据的简单组件,它是以表格格式存储在Ext.data.Store中的记录集合。 语法 (Syntax) 以下是创建网格的简单语法。 Ext.create('Ext.grid.Panel',{ grid properties.. columns : [Columns] }); 例子 (Example) 以下是显示网格的简单示例。 <!DOCTYPE html> <html>

  • 介绍 (Introduction) Grid小部件表示一个矩形网格,可以在其单元格中包含text,html或子Widget。 必须将其显式调整为所需的行数和列数。 Class 声明 (Class Declaration) 以下是com.google.gwt.user.client.ui.Grid类的声明 - public class Grid extends HTMLTable 类构造函数

  • grid 九宫格,功能类似于微信钱包界面中的九宫格,用于展示有多个相同级别的入口。包含功能的图标和简洁的文字描述。 <div class="weui-grids"> <a href="javascript:;" class="weui-grid"> <div class="weui-grid__icon"> <img src="./images/ic