简体   繁体   English

最小化程序时是否可以更改图标?

[英]Is it possible to change icon when program is minimized?

I am working on a chat program and I want the program to change icon when it is recieving data but only if its minimized. 我正在开发一个聊天程序,我希望该程序在接收数据时更改图标,但前提是将其最小化。 And when you pull the program up again it should change the icon back. 当您再次拉起程序时,应将图标改回来。 I tried just changing it in my recieving thread like this: 我试图像这样在接收线程中更改它:

def returnrecv():
    while True:
        recieve = s.recv(1024).decode("utf-8")
        winsound.PlaySound('beep.wav', winsound.SND_FILENAME + winsound.SND_ASYNC)
        recieveBox.config(state=NORMAL)
        timeclock = time.strftime('%H:%M')
        recieveBox.insert(END, "[" + timeclock + "]", 'black', "Other: ", 'blue', recieve + "\n\n")
        recieveBox.config(state=DISABLED)
        recieveBox.see("end")

        root.iconbitmap("gouico2.ico")

But how would I program it to only do this when the program is minimized? 但是,我如何编程使其仅在程序最小化时才这样做?

You can use root.state() to check the state of the window. 您可以使用root.state()来检查窗口的状态。

import tkinter as tk

root = tk.Tk()

def change_icon():
    print (root.state())
    if root.state() == "iconic":
        print ("I am hidden")
    root.after(1000, change_icon)

root.after(1000,change_icon)

root.mainloop()

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM