即使使用几何管理器,按钮也不会在Tkinter中显示

时间:2019-06-29 05:26:00

标签: python tkinter

我正在tkinter中设计一个应用程序,但是有一个不会显示的按钮。该按钮对于程序的运行至关重要。

import tkinter as tk

global field

root = tk.Tk()
root.resizable(0,0)

root.geometry('368x200')

header = tk.Label(root, text = 'Header Text', pady=20)
header.config(font = ('Tahoma', 24))
header.grid(row = 0, columnspan=2)

enter_here = tk.Label(root, text = 'Question: ')
enter_here.grid(row = 1, column = 0, pady = 50)
field = tk.Entry(root, width = 50)
field.grid(row = 1, column = 1, pady = 50)

answer = tk.Button(root, text = 'Answer', command = answerf, width=10)
answer.grid(row=2, column=2)

root.mainloop()

标题,标题文本和字母均为占位符。我只需要弄清楚如何使用按钮。我环顾四周,找不到任何答案;大多数人只是忘记了几何管理器。

2 个答案:

答案 0 :(得分:1)

您必须注意要向tkinter小部件的各个参数传递什么值。在上述情况下,这就是您看不见button的原因。

更改

field = tk.Entry(root, width = 50)
field.grid(row = 1, column = 1, pady = 50)

field = tk.Entry(root, width = 25)
field.grid(row = 1, column = 1, pady = 30)

然后

answer = tk.Button(root, text = 'Answer', command = answerf, width=10)
answer.grid(row=2, column=2)

answer = tk.Button(root, text = 'Answer', command = answerf, width=10)
answer.grid(row=1, column=2)

输出:

enter image description here

答案 1 :(得分:0)

问题很简单,就是您强制窗口的大小对于其中的对象来说太小了。

一个简单的解决方法是删除此行:

root.geometry('368x200')

如果您坚持要保持这一行,那么您需要调整其他小部件的参数,以使其适合于受限的空间。例如,您可以减小小部件的大小或减少填充。