为什么Frame不会出现在Tkinter中?(Why does the Frame not appear in Tkinter?)
我正在尝试构建一个基于你输入的音符播放音乐的程序。一切都在游泳,直到我试图添加不同的应用程序屏幕。 我有两个框架, songSelect和songSelect 。 我lift()那个我想要展示的那个。 唯一的问题是,什么都不会出现。
这是我的代码:
root = Tk() root.title("Music Creator") root.geometry("300x230") root.iconbitmap(default='favicon.ico') root.resizable(width=FALSE, height=FALSE) mainMenu = Frame(root) songSelect = Frame(root) def raiseFrame(frame): frame.lift() mainMenu.lift() programName = Label(mainMenu, text="Music Creator", font=("Helvetica",20)) noteLabel = Label(mainMenu, text="Notes to play:") tempoLabel = Label(mainMenu, text="Interval to play the notes at: (In seconds)") noteEntry = Entry(mainMenu) tempoEntry = Entry(mainMenu) playButton = Button(mainMenu, text="Play", command=lambda: playNotes(noteEntry.get(),tempoEntry.get())) loadButton = Button(mainMenu, text="Load", command=lambda: raiseFrame(songSelect)) programName.place(relx=0.5,y=25,anchor=CENTER) noteLabel.place(relx=0.5,y=60,anchor=CENTER) noteEntry.place(relx=0.5,y=90,anchor=CENTER) tempoLabel.place(relx=0.5,y=130,anchor=CENTER) tempoEntry.place(relx=0.5,y=160,anchor=CENTER) playButton.place(relx=0.5,y=200,anchor=CENTER) loadButton.place(x=10,y=40) root.mainloop() mainMenu.mainloop()I am trying to build a program that plays music based on notes that you put in. Everything was going swimmingly untill I tried to add different screens of the application. I have two frames, songSelect and mainMenu. I lift() the one that I want to display at that time. The only problem is, that nothing will appear.
Here is my code:
root = Tk() root.title("Music Creator") root.geometry("300x230") root.iconbitmap(default='favicon.ico') root.resizable(width=FALSE, height=FALSE) mainMenu = Frame(root) songSelect = Frame(root) def raiseFrame(frame): frame.lift() mainMenu.lift() programName = Label(mainMenu, text="Music Creator", font=("Helvetica",20)) noteLabel = Label(mainMenu, text="Notes to play:") tempoLabel = Label(mainMenu, text="Interval to play the notes at: (In seconds)") noteEntry = Entry(mainMenu) tempoEntry = Entry(mainMenu) playButton = Button(mainMenu, text="Play", command=lambda: playNotes(noteEntry.get(),tempoEntry.get())) loadButton = Button(mainMenu, text="Load", command=lambda: raiseFrame(songSelect)) programName.place(relx=0.5,y=25,anchor=CENTER) noteLabel.place(relx=0.5,y=60,anchor=CENTER) noteEntry.place(relx=0.5,y=90,anchor=CENTER) tempoLabel.place(relx=0.5,y=130,anchor=CENTER) tempoEntry.place(relx=0.5,y=160,anchor=CENTER) playButton.place(relx=0.5,y=200,anchor=CENTER) loadButton.place(x=10,y=40) root.mainloop() mainMenu.mainloop()最满意答案
因为您使用place ,所以框架不会调整大小以适合其内容。 因此,您的框架只有一个像素高和宽。
Because you use place, the frames don't resize to fit their contents. Therefore your frame is only one pixel tall and wide.
更多推荐
发布评论