我在创建Python 3 tkinter应用程序时遇到了问题.我目前正在使用Mac OSX系统进行开发,但我通常使用Windows操作系统.
我希望应用程序占用整个屏幕而窗口管理器的标题栏和框架不在应用程序周围,通常称为游戏中的全屏无边框窗口.
我已经尝试使用root.attributes("-fullscreen", True)与root.overrideredirect(True)和root.wm_attributes("-topmost", 1).然而,包含该root.overrideredirect(True)线不允许它进入适当的全屏; 它仍然显示Mac Dock和任务栏,它还会破坏我在应用程序中的击键绑定.如果没有该root.overrideredirect(True)行,应用程序将进入全屏模式(隐藏停靠栏和任务栏),但窗口不会填满整个屏幕; 它在底部留下了一个空隙,它还保留了窗口管理器的标题栏和框架/边框.
这是我的代码示例:
import tkinter as tk
class App(tk.Frame):
def __init__(self, parent, *args, **kwargs):
tk.Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Fullscreen Application")
self.pack(fill="both", expand=True, side="top")
self.parent.wm_state("zoomed")
self.parent.bind("<F11>", self.fullscreen_toggle)
self.parent.bind("<Escape>", self.fullscreen_cancel)
self.fullscreen_toggle()
self.label = tk.Label(self, text="Fullscreen", font=("default",120), fg="black")
self.label.pack(side="top", fill="both", expand=True)
def fullscreen_toggle(self, event="none"):
self.parent.focus_set()
self.parent.overrideredirect(True)
self.parent.attributes("-fullscreen", True)
self.parent.wm_attributes("-topmost", 1)
def fullscreen_cancel(self, event="none"):
self.parent.overrideredirect(False)
self.parent.attributes("-fullscreen", False)
self.parent.wm_attributes("-topmost", 0)
self.centerWindow()
def …Run Code Online (Sandbox Code Playgroud) 我正在创建一个Python(3.4.3) - tkinter程序,我想知道是否可以def从另一个内部引用(self.get_details)class按钮的命令.我无法在任何地方找到这个问题的答案,所以我想我只是问.
例:
import tkinter as tk
...
class Widgets(tk.Frame):
def __init__(self, parent):
tk.Frame.__init___(self, parent)
self.parent = parent
self.initUI()
def initUI():
# Lots of other different tkinter widgets go here
self.button = tk.Button(command=App(get_details))
self.button.pack()
class PopUp(tk.TopLevel): ....
class App(tk.Frame):
def __init__(self, parent):
tk.Frame.__init__(self, parent)
self.parent = parent
self.initUI()
def get_details(self):
# Complete a function
def initUI(self):
self.parent.title("My Application")
self.style = Style()
self.style.theme_use("default")
self.pack()
self.widgets = Widgets(self)
self.widgets.pack(side="top", anchor="center", fill="both", expand=True)
if __name__ == "__main__":
root …Run Code Online (Sandbox Code Playgroud)