本帖最后由 yhhpf 于 2020-7-1 17:22 编辑
import tkinter as tk # 导入Tkinter模块,仅用于Python3
root = tk.Tk() # 建立Tkinter主窗口root
root.title(' Tk窗口')
root.geometry('{}x{}+{}+{}'.format(400, 400, 200, 200)) # 改变窗口位置和大小
root.attributes('-topmost', 0) # 参数1,设置顶层窗口,覆盖其它窗口。
# separator = tk.Frame(height=100, bd=1, relief="sunken")
# separator.pack(fill="x", padx=5, pady=5)
# tk.Label(text="小鸡炖蘑菇").pack()
popWindow = tk.Toplevel(root)
popWindow.title('Toplevel窗口')
popWindow.geometry('{}x{}+{}+{}'.format(200, 200, 300, 300)) # 改变窗口大小和位置
popWindow.attributes("-toolwindow", 1) # 参数1,设置工具栏样式窗口。
popWindow.attributes('-topmost', 1) # 参数1,设置顶层窗口,覆盖其它窗口。
popWindow.attributes("-alpha", 0.5)
popWindow.resizable(width=False, height=False) # Toplevel窗口不可以调整尺寸
popWindow.overrideredirect() # 隐藏窗体工具栏
# popWindow.withdraw()
def change(event):
global a, b, c, d
root.update()
a = root.winfo_x()
b = root.winfo_y()
print("(窗口位置被移动)窗口位于屏幕xxx轴:" + str(a))
print("(窗口位置被移动)窗口位于屏幕y轴:" + str(b))
root.bind("<Configure>", change) # 绑定事件
popWindow.update()
c = popWindow.winfo_x()
d = popWindow.winfo_y()
print("(窗口位置被移动)窗口位于屏幕1111111111轴:" + str(c))
print("(窗口位置被移动)窗口位于屏幕222222轴:" + str(d))
if c <= a:
popWindow.geometry('{}x{}+{}+{}'.format(200, 200, a+10, d))
elif c >= (a + 200):
popWindow.geometry('{}x{}+{}+{}'.format(200, 200, a+190, d))
else:
c = popWindow.winfo_x()
if d <= b:
popWindow.geometry('{}x{}+{}+{}'.format(200, 200, c, b+10))
elif d >= (b + 200):
popWindow.geometry('{}x{}+{}+{}'.format(200, 200, c, b+190))
else:
d = popWindow.winfo_y()
popWindow.bind("<Configure>",change)
root.mainloop()
我也顺带学习了下,按你思路,改了下代码
最好加个弹框提示~~~ |