我在其他语言中看到过很多帖子和问题,主要是C#,但不是在python中。
我正在使用Windows 10,在创建气球工具提示通知时,我使用的自定义图标显示模糊,并且周围有黑色字段,我尝试使用不同的图标,具有不同的图像高度和宽度并没有帮助,也没有帮助使用图像.ico或.png等。
我所看到的所有使用自定义图标都是关于使用我在win32gui documentation中看不到的选项或者扩展工具提示图标类,我认为你不能通过python做这些。
在另一个问题中有人说你必须使用完整路径而不是使用os.path来获取完整路径,但这没有帮助。
这是我的代码的一部分,我设置图标的部分:
win32gui.UpdateWindow(self.hwnd)
icon_path_name = os.path.abspath(os.path.join(sys.path[0],
"notif.ico"))
icon_flags = win32con.LR_LOADFROMFILE | win32con.LR_DEFAULTSIZE
try:
hicon = win32gui.LoadImage(hinst, icon_path_name,
win32con.IMAGE_ICON, 0, 0, icon_flags)
except:
hicon = win32gui.LoadIcon(0, win32con.IDI_APPLICATION)
flags = win32gui.NIF_ICON | win32gui.NIF_MESSAGE | win32gui.NIF_TIP
nid = (self.hwnd, 0, flags, win32con.WM_USER+20, hicon, "tooltip1")
win32gui.Shell_NotifyIcon(win32gui.NIM_ADD, nid)
win32gui.Shell_NotifyIcon(win32gui.NIM_MODIFY,
(self.hwnd, 0, win32gui.NIF_INFO,
win32con.WM_USER+20, hicon,
"Notification", msg, 200, title))
答案 0 :(得分:0)
要使用用户提供的图标作为通知弹出窗口(最近版本的Windows中气球工具提示的后续版本),在NOTIFYICONDATA
中将图标句柄照常放在hIcon
中,并放置一个您的NIIF_USER
中的值为{dwInfoFlags
}:
NIIF_USER = 4
# ...
win32gui.Shell_NotifyIcon(win32gui.NIM_MODIFY,
(self.hwnd, 0, win32gui.NIF_INFO,
win32con.WM_USER+20, hicon,
"Notification", msg, 200, title, NIIF_USER))
我不确定什么是模糊和&背景问题是;我可以建议的是确保图标文件中的位图具有适当的alpha蒙版,并且您希望系统托盘中有32x32位图,气球工具提示窗口需要更大的位图,并调整您的必要时icon_flags
。