gpt4 book ai didi

python - 使用 tkinter 未按要求显示布局

转载 作者:太空宇宙 更新时间:2023-11-04 03:32:39 24 4
gpt4 key购买 nike

我在 python 中使用 tkinter 并需要构建一个带有标签和按钮的简单 GUI,如下所示:

enter image description here

但我面临两个问题。首先是我在顶部而不是在计时器下方设置按钮。第二件事是我有一个按钮列表,所以可以有更好的方法而不是明确地写下所有四个按钮的位置。

目前我的输出是:

enter image description here

我的代码是:

from Tkinter import *
import json
import tkMessageBox


class ProgramGUI(Frame):

def __init__(self, master=None):
master.title('QuizBox')
master.update()
master.minsize(350, 150)
Frame.__init__(self, master)
self.pack()
questionText = StringVar()
Label(master, textvariable=questionText,
justify=CENTER, wraplength=200).pack()
questionText.set("Question text goes here")

timer = IntVar()
Label(master, textvariable=timer, justify=CENTER, fg="blue").pack()
timer.set("10")

buttonList = []
buttonList.append("Answer 1")
buttonList.append("Answer 2")
buttonList.append("Answer 3")
buttonList.append("Answer 4")
# ADD FOUR BUTTONS HORIZONTALLY

self.columnconfigure(0, pad=3)
self.columnconfigure(1, pad=3)
self.columnconfigure(2, pad=3)
self.columnconfigure(3, pad=3)
self.rowconfigure(0, pad=3)
answer1 = Button(self, text="Answer 1")
answer1.grid(row=0, column=0)
answer2 = Button(self, text="Answer 2")
answer2.grid(row=0, column=1)
answer3 = Button(self, text="Answer 3")
answer3.grid(row=0, column=2)
answer4 = Button(self, text="Answer 4")
answer4.grid(row=0, column=3)

score = IntVar()
Label(master, textvariable=score, justify=CENTER).pack()
score.set("Score: 0")


root = Tk()
gui = ProgramGUI(master=root)
gui.mainloop()
root.destroy()

最佳答案

快速修复是移动 self.pack() 以便它在您对按钮进行网格化之后,但在您打包最终标签之前发生。

    answer4.grid(row=0, column=3) 

self.pack()

score = IntVar()

现在您的按钮将显示在计时器下方和分数上方。

enter image description here

顺便说一句,您可以使用 for 循环以更少的代码行创建按钮。

    timer.set("10")

#ADD FOUR BUTTONS HORIZONTALLY
buttonList = ["Answer 1", "Answer 2", "Answer 3", "Answer 4"]
self.rowconfigure(0, pad=3)
for i, value in enumerate(buttonList):
self.columnconfigure(i, pad=3)
Button(self, text=value).grid(row=0, column=i)

self.pack()

关于python - 使用 tkinter 未按要求显示布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30464505/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com