每当我为窗口管理器创建窗口集和图标并更改窗口的其他属性(例如“可调整大小”)时,它就会“闪烁”。我想这是因为再次调用窗口管理器并重新启动窗口。有什么方法我可以称之为“沉默”的改变或类似的东西?我的研究工作并不是很幸运。
如果您想亲眼看看,您将需要一个图标文件。我上传了我正在使用的图标here。如果您不熟悉下载它,您还可以在系统目录中找到合适的图标文件。搜索“* .ico”。任何16x16图标都可以。
#! coding=utf-8
import tkinter as tk
import os
def CENTER_WINDOW(window,parent):
""" Verschiebt ein Fenster auf dem Bildschirm"""
# get window size
window.update_idletasks()
w = window.winfo_width()
h = window.winfo_height()
# get parent size
if parent=="screen":
p_x , p_y = window.winfo_screenwidth(), window.winfo_screenheight()
p_ox, p_oy = 0,0
else:
parent.update_idletasks()
p_x , p_y = parent.geometry().split("+")[0].split("x")
p_x , p_y = int(p_x) , int(p_y)
p_ox, p_oy = int(parent.geometry().split("+")[1]),int(parent.geometry().split("+")[2])
# calculate position x, y
x = p_x/2 + p_ox - w/2
y = p_y/2 + p_oy - h/2
window.geometry('%dx%d+%d+%d' % (w,h,x,y))
window.update_idletasks()
def top():
T = tk.Toplevel()
T.wm_iconbitmap( os.path.abspath("icon.ico"))
T.resizable(width=tk.FALSE, height=tk.FALSE)
CENTER_WINDOW(T,root)
root = tk.Tk()
root.geometry("100x50")
but = tk.Button(root,text="Toplevel",command=top)
CENTER_WINDOW(root,"screen")
but.pack()
root.mainloop()
答案 0 :(得分:1)
粗略概述: