from tkinter import *
no_border = True
class ControlPanel(Tk):
def __init__(self, posx=0, posy=0):
super().__init__()
global no_border
self.posx = posx
self.posy = posy
self.no_border = True
self.title("Control Panel")
self.attributes("-topmost", "true")
self.geometry("+{}+{}".format(self.posx, self.posy))
self.overrideredirect(no_border)
self.border_button = Button(self, text = "Border", command = lambda: Window1.borderShowHide(Window1))
self.border_button.pack()
self.exit_button = Button(self, text = "Exit", command = self.destroy)
self.exit_button.pack()
@classmethod
def borderShowHide(cls, self):
global no_border
if no_border:
no_border = False
else:
no_border = True
self.overrideredirect(no_border)
class WindowAttributes(Toplevel):
def __init__(self, master=None, windowTitle=None, posx=0, posy=0):
super().__init__(master)
global no_border
self.posx = posx
self.posy = posy
self.no_border = True
self.title(windowTitle)
self.attributes("-topmost", "true")
self.geometry("+{}+{}".format(self.posx, self.posy))
self.overrideredirect(no_border)
@classmethod
def borderShowHide(cls, self):
global no_border
if no_border:
no_border = False
else:
no_border = True
self.overrideredirect(no_border)
class Window1(WindowAttributes):
def __init__(self, *args):
super().__init__(*args)
self.text_label = Label(self, text = "Test 1")
self.text_label.pack()
class Window2(WindowAttributes):
def __init__(self, *args):
super().__init__(*args)
self.text_label = Label(self, text = "Test 2")
self.text_label.pack()
def main():
control_panel = ControlPanel(1225, 50)
window_1 = Window1(control_panel, "Window 1", 0, 50)
window_2 = Window2(control_panel, "Window 2", 0, 500)
control_panel.mainloop()
if __name__ == "__main__":
main()
当我尝试从面板border_button控制其他Windows边框属性时,出现此错误:
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Lenovo- PC\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "C:\Users\Lenovo-PC\Desktop\interface.py", line 22, in <lambda>
self.border_button = Button(self, text = "Border", command = lambda: Window1.borderShowHide(Window1))
File "C:\Users\Lenovo-PC\Desktop\interface.py", line 69, in borderShowHide
self.overrideredirect(no_border)
File "C:\Users\Lenovo-PC\AppData\Local\Programs\Python\Python36\lib\tkinter\__init__.py", line 1944, in wm_overrideredirect
return self._getboolean(self.tk.call(
AttributeError: 'bool' object has no attribute '_getboolean'
请原谅我的英语,谢谢