gpt4 book ai didi

python - Tkinter GUI 中的菜单、按钮等栏

转载 作者:太空宇宙 更新时间:2023-11-04 06:23:25 25 4
gpt4 key购买 nike

我正在尝试启动一个遵循 Class menu in Tkinter Gui 的 Tkinter 应用程序为了整洁,但也为例如添加此功能。按钮栏、RadioButton 栏等。类似于:

from Tkinter import *

def clickTest():
print "Click!"

class App(Tk):
def __init__(self):
Tk.__init__(self)
menuBar = MenuBar(self)
buttonBar = ButtonBar(self)

self.config(menu=menuBar)
buttonBar.grid(row=0, column=0) ???

class MenuBar(Menu):
def __init__(self, parent):
Menu.__init__(self, parent)

fileMenu = Menu(self, tearoff=False)
self.add_cascade(label="File", menu=fileMenu)
fileMenu.add_command(label="Exit", command=clickTest)

class ButtonBar(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)

firstButton = Button(parent, text="1st Button", command=clickTest)
secondButton = Button(parent, text="2nd Button", command=clickTest)

if __name__ == "__main__":

app = App()
app.mainloop()

但我不确定如何让所有这些都显示在同一个窗口中。当然,按原样编写代码是行不通的。任何建议表示赞赏。谢谢!

最佳答案

是用 pack() 做的。我相信它也可以用 grid() 来完成,但我不太熟悉它。

from Tkinter import *

def clickTest():
print "Click!"

class App(Tk):
def __init__(self):
Tk.__init__(self)
menuBar = MenuBar(self)
buttonBar = ButtonBar(self)

self.config(menu=menuBar)
buttonBar.pack()

class MenuBar(Menu):
def __init__(self, parent):
Menu.__init__(self, parent)

fileMenu = Menu(self, tearoff=False)
self.add_cascade(label="File", menu=fileMenu)
fileMenu.add_command(label="Exit", command=clickTest)

class ButtonBar(Frame):
def __init__(self, parent):
Frame.__init__(self, parent)

firstButton = Button(self, text="1st Button", command=clickTest).pack()
secondButton = Button(self, text="2nd Button", command=clickTest).pack()

if __name__ == "__main__":

app = App()
app.mainloop()

另一件事是,您应该将按钮的父级设置为 Frame,如下所示:

firstButton = Button(self, text="1st Button", command=clickTest).pack()

在这里,我将parent 更改为selfself 是框架本身,而不是整个顶层窗口。使用 pack() 函数,我将按钮打包到它的父级中,在本例中是 Frame。

然后使用 buttonBar.pack() 我将 buttonBar 打包到顶层窗口中。您也可以在此处和框架中使用网格。

关于python - Tkinter GUI 中的菜单、按钮等栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10201541/

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