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

什么是比.grid()更好的Tkinter几何管理器?

宗政永望
2023-03-14
问题内容

我的投诉

目前,我在Tkinter GUI之前比“以前”更深入地研究,并且我发现.grid()几何图形管理器不足有几个原因:

  1. 这些图基于其中最大的窗口小部件-这种相对性会导致不准确。

  2. 在Windows 7中,在Python 2.7.3上,该程序似乎没有理会我的行号,而是倾向于使用小部件的顺序。

我的密码

我目前正在使用一个 非常
基本的文本编辑器,并且希望在框架顶部具有多个按钮。我一直无法执行此操作,因为我的窗口小部件放置在控制屏幕中心的大型文本框的最左侧或右侧。

========Class __init__ Stuff============
def widget(self):#Place widgets here

    #Save Button
    self.saveButton = Button (self, text = "Save", command = self.saveMe)
    self.saveButton.grid(column = 0, row = 0, sticky = W)

    #Open Button
    self.openButton = Button (self, text = "Open", command = self.openMe)
    self.openButton.grid(column = 0, row = 1, sticky = W)
    #Area where you write 
    self.text = Text (self, width = (root.winfo_screenwidth() - 20),
                      height = (root.winfo_screenheight() - 10))
    self.text.grid(row = 2)
==============Mainloop/Command Stuff============

我的问题

还有另.grid()一种方式可以更精确地使用几何图形管理器,还是应该完全使用另一个函数?

谢谢!


问题答案:

还有,你必须提供给您3名几何经理-
gridpackplace。第三是最一般的,但也很难使用。我更喜欢grid。请注意,您可以将小部件放置在其他小部件内-
或可以指定columnspan。因此,如果要获得以下布局:

  -------------------------
  |    Button1  | Button2 |
  -------------------------
  |     Big Widget        |
  -------------------------

有两种使用的规范方法.grid。第一种方法是columnspan

import Tkinter as Tk
root = Tk.Tk()
b1 = Tk.Button(root,text="Button1")
b1.grid(row=0,column=0)
b2 = Tk.Button(root,text="Button2")
b2.grid(row=0,column=1)
big_widget = Tk.Canvas(root)
big_widget.grid(row=1,column=0,columnspan=2)

*请注意,还有一个完全相似的rowspan选项。

第二种方法是使用aFrame按住按钮:

import Tkinter as Tk
root = Tk.Tk()
f = Tk.Frame(root)
f.grid(row=0,column=0)
#place buttons on the *frame*
b1 = Tk.Button(f,text="Button1")
b1.grid(row=0,column=0)
b2 = Tk.Button(f,text="Button2")
b2.grid(row=0,column=1)

big_widget = Tk.Canvas(root)
big_widget.grid(row=1,column=0)  #don't need columnspan any more.

这种方法是 SUPER 创建复杂的布局非常有用-我不知道你怎么可以不使用创建一个复杂的布局Frame像这样的对象…



 类似资料:
  • 我是移动开发的新手,我看到ionic framework有很大的社区,但是 我知道ionic使用webview,而nativescript生成本地组件 我现在的问题是什么nativescript可以做离子不能做? 换句话说,nativescript中有哪些在爱奥尼亚没有的强大之处 提前谢谢。

  • 问题内容: 我试图理解 为什么Java的ArrayDeque比Java的LinkedList更好, 因为它们都实现了Deque接口。 我几乎看不到有人在他们的代码中使用ArrayDeque。如果有人对ArrayDeque的实现方式有了更多的了解,那将是有帮助的。 如果我理解它,我会更自信地使用它。对于JDK实现管理头和尾引用的方式,我不清楚。 问题答案: 链接结构可能是最糟糕的结构,要在每个元素上

  • 问题内容: 我目前正在开始新的应用开发。应用程序设计师坚持认为我们使用 JBoss5 是因为它“更好”。是否有人对“更好”有更广泛的定义(如果如此)? 我有在具有大量用户负载的大规模应用程序中使用 Tomcat5 和6的经验,并且它处理得很好(IMHO)。两者都将在相同的硬件条件下(如果实现很重要)在 RedHat6 上运行。 提前致谢 问题答案: 说任何工具或框架都只是“更好”是可笑的。它总是取

  • 在《 GUI是什么》一节,我们了解了 GUI(图形用户界面)的相关概念,接下来我们正式介绍本教程的主人公 —— Tkinter。 Tkinter(即 tk interface,简称“Tk”)本质上是对 Tcl/Tk 软件包的 Python 接口封装,它是 Python 官方推荐的 GUI 工具包,属于 Python 自带的标准库模块,当您安装好 Python 后,就可以直接使用它,而无须另行安装。

  • 问题内容: 我主要使用jQuery库,并且刚开始使用AngularJS。我已经阅读了一些有关_如何_使用Angular的教程,但是不清楚为什么使用它或何时使用它,或者与仅使用jQuery相比,我会发现什么好处。 在我看来,Angular使您想到MVC,这也许意味着您将网页视为模板+数据组合。只要有动态数据,就可以使用。然后,Angular将为您提供一个$scope处理程序,您可以静态地填充它,也可

  • 问题内容: 一直有人告诉我,在调试应用程序时,JavaScript的方法优于简单的使用方法。为什么是这样?有没有一个很好的例子,有人可以指出我哪里是更好的选择? 问题答案: 正在阻止 在非调试环境中不容易被抑制 通常可以很好地格式化对象并允许遍历它们 日志记录语句通常具有交互式的代码指针,该代码发出了日志记录语句 您一次只能查看一个以上的消息 可以通过直观的格式设置不同的日志记录级别