【发布时间】:2022-06-19 07:21:35
【问题描述】:
我正在尝试为一个项目编写一个 GUI,并且我正在尝试在中心获取一个输入文本框。我尝试更改行值和列值,但它们只是将框保留在左上角。关于如何使文本框居中的任何想法? (问题在于 takeEntry 函数)
import tkinter as tk
from tkinter import *
# Startup
root = tk.Tk()
root.geometry(\"600x400\")
root.title(\'SpellIt\')
canvas = tk.Canvas(root,width=600, height=400)
canvas.grid(columnspan=3, rowspan=10)
def startPage(root):
start_page = tk.Frame(root)
start_page.grid(columnspan=3, rowspan=10)
instructions = tk.Label(root, text=\"Spell It!\", font=(\"Impact\", 44))
instructions.grid(columnspan=3, column=0, row=0)
start_text = tk.StringVar()
start_button = tk.Button(root, textvariable=start_text, command=lambda: changepage(), font=(\"Impact\", 30))
start_text.set(\"Start\")
start_button.grid(columnspan=3, column=0, row=5)
def gamePage(root):
game_page = tk.Frame(root, width=600, height=400)
game_page.grid(columnspan=3, rowspan=10)
tk.Label(game_page, text = \"This is the game page\").grid(row = 0)
def changepage():
global pagenum, root
for widget in root.winfo_children():
widget.destroy()
if pagenum == 1:
gamePage(root)
takeEntry()
clock(60)
pagenum = 2
# Timer
def clock(count):
global root
timer_label = tk.Label(root, text=\"\", font=(\"Impact\", 20))
timer_label.place(x=500, y=15)
# change text in label
timer_label[\'text\'] = count
if count > 0:
# call countdown again 1s
root.after(1000, clock, count - 1)
def takeEntry():
entry1 = Entry(root, width = 30, font=(\"Impact\", 10)).grid(row=1, column=1) #problem is here
pagenum = 1
startPage(root)
root.mainloop()
-
空行和列的大小为零。你知道吗?
-
@BryanOakley 我不是,我对 tkinter 很陌生。这是什么意思,我该如何解决?非常感谢你
标签: python python-3.x tkinter tkinter-entry