Python 为什么我的上框不是我选择的颜色而是下框?
我正在使用Tkinter和pyhton 2.7创建一个Tkinter窗口,该窗口具有顶框和底框。顶部框架有多个我可以选择的页面。当我创建容器时,我将顶框设为绿色,底框设为蓝色。然而,当我运行代码时,顶框是灰色的 dashboard.py:Python 为什么我的上框不是我选择的颜色而是下框?,python,python-2.7,tkinter,Python,Python 2.7,Tkinter,我正在使用Tkinter和pyhton 2.7创建一个Tkinter窗口,该窗口具有顶框和底框。顶部框架有多个我可以选择的页面。当我创建容器时,我将顶框设为绿色,底框设为蓝色。然而,当我运行代码时,顶框是灰色的 dashboard.py: from Tkinter import * from page1 import PageOne from page2 import PageTwo from page3 import PageThree class FullscreenWindow:
from Tkinter import *
from page1 import PageOne
from page2 import PageTwo
from page3 import PageThree
class FullscreenWindow:
def __init__(self):
self.tk = Tk()
self.tk.configure(background='black')
#Create Containers
self.buttonFrame = Frame(self.tk, background='black')
self.topFrame = Frame(self.tk, bg="green")
self.bottomFrame = Frame(self.tk, bg="blue")
#Resize containers
self.buttonFrame.pack(side="top", fill="x", expand=False)
self.topFrame.pack(side="top", fill="both", expand=True)
self.bottomFrame.pack(side="top", fill="both", expand=True)
#Define Pages
self.pageOne = PageOne(self.tk)
self.pageTwo = PageTwo(self.tk)
self.pageThree = PageThree(self.tk)
#Place Pages in Containers
self.pageOne.place(in_=self.topFrame, x=0, y=0, relwidth=1, relheight=1)
self.pageTwo.place(in_=self.topFrame, x=0, y=0, relwidth=1, relheight=1)
self.pageThree.place(in_=self.topFrame, x=0, y=0, relwidth=1, relheight=1)
#Create Navigation Buttons
self.buttonOne = Button(self.buttonFrame, text="Page 1", command=self.pageOne.lift)
self.buttonTwo = Button(self.buttonFrame, text="Page 2", command=self.pageTwo.lift)
self.buttonThree = Button(self.buttonFrame, text="Page 3", command=self.pageThree.lift)
#Format Buttons
self.buttonOne.pack(side="left")
self.buttonTwo.pack(side="left")
self.buttonThree.pack(side="left")
#Display Page 1 by default
self.pageOne.show()
#Bind Enter Key to Toggle FullScreen
self.state = False
self.tk.bind('<Return>', self.toggle_fullscreen)
def toggle_fullscreen(self, event=None):
self.state = not self.state
self.tk.attributes('-fullscreen', self.state)
return 'break'
if __name__ == '__main__':
w = FullscreenWindow()
w.tk.resizable(width=False, height=False)
w.tk.geometry('720x1280')
w.tk.mainloop()
page.py:
import Tkinter as tk
class Page(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
def show(self):
self.lift()
顶部框架是您指定的颜色。只是页面实例完全隐藏了它 通过更改页面在框架中的放置方式,可以看到这一点:
self.pageOne.place(in_=self.topFrame, relx=.05, rely=.05, relwidth=.9, relheight=.9)
self.pageTwo.place(in_=self.topFrame, relx=.05, rely=.05, relwidth=.9, relheight=.9)
self.pageThree.place(in_=self.topFrame, relx=.05, rely=.05, relwidth=.9, relheight=.9)
非常感谢。我在place文档中没有看到任何选项建议您可以更改这些行中的颜色。是否有一个解决方法,某种方法使背景为TransparentNevermind。我找到了需要编辑的行。谢谢。不,你不能使框架的背景透明。
self.pageOne.place(in_=self.topFrame, relx=.05, rely=.05, relwidth=.9, relheight=.9)
self.pageTwo.place(in_=self.topFrame, relx=.05, rely=.05, relwidth=.9, relheight=.9)
self.pageThree.place(in_=self.topFrame, relx=.05, rely=.05, relwidth=.9, relheight=.9)