python - tkinter 程序的窗口大小

标签 python user-interface ubuntu tkinter

实际上,我认为 tkinter 窗口已经足够大了。不幸的是,这对我来说不是真的(我使用 Lubuntu 16.04)。

我的问题: 可以请有人向我解释下面的例子吗?我不明白 tkinter 的行为。


举个例子:

import tkinter as tk

root = tk.Tk()

menubar = tk.Menu(root)

file_menu = tk.Menu(menubar)

menubar.add_cascade(label="This is a very long string because it's just a test . . . ", menu=file_menu)
file_menu.add_command(label="New", accelerator="Ctrl+N")

root.config(menu=menubar)
root.mainloop()

截图: window 不够大。为什么?

enter image description here


另一个例子(容器Frame):

import tkinter as tk

root = tk.Tk()

container = tk.Frame(root).pack()

menubar = tk.Menu(container)

file_menu = tk.Menu(menubar)

menubar.add_cascade(label="This is a very long string because it's just a test . . . ", menu=file_menu)
file_menu.add_command(label="New", accelerator="Ctrl+N")

root.config(menu=menubar)
root.mainloop()

屏幕截图:非常非常小!你真的看不到它。但为什么会这样呢?

enter image description here

最佳答案

Tk 中的窗口大小是窗口几何管理器的函数。对于顶层窗口,几何管理器是“wm”,这意味着它由平台窗口管理器管理。这会向应用程序窗口询问大小或设置默认值。菜单小部件不提供大小,因此不会影响几何计算。所以你得到一个默认的顶层大小,因为你没有在内部管理小部件。

在第二种情况下,您创建了一个没有大小尺寸的框架,默认为 0 的高度和宽度。您将其打包,将顶层 wdget 设置为其从属对象使用包几何管理器。这会询问从站(您的框架)他们需要多少空间,并将主站(顶层)设置为合适的大小以包含它们。这里是 0。如果您设置框架的宽度和高度,顶层将扩展以包含它。

关于python - tkinter 程序的窗口大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334292/

相关文章:

安卓用户界面 : ImageButton with animation

JavaFX 元素在动画之前对齐

ruby - sqlite3-ruby 在 Ubuntu 上安装错误

ubuntu - 已安装 curl 但 libcurl 不会更新

css - rails : Production assets loading from user's localhost instead of Ubuntu server

python - 从 Python 列表中有效地删除非常接近的重复项

python - 保存和检索 Python 对象属性值到文件

JavaFx 无法正确呈现

python - wx.Treetrl 项目查找表

python - 如何在python上获取系统时间(服务器redis)