首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类似Goose的桌面程序

类似Goose的桌面程序
EN

Stack Overflow用户
提问于 2020-10-15 11:11:17
回答 1查看 679关注 0票数 0

我一直在尝试创建一个类似于桌面鹅的python程序,在小部件可以在屏幕上自由移动的方面。

首先,我尝试用tkinter创建一个窗口,并用PNG的角色图片制作a transparent window,然后用win32gui或任何其他允许我这样做的库移动窗口。但首先,tkinter透明窗口的东西不起作用,因为小部件继承了透明度,所以我无法显示PNG。然后我很难找到任何可以让我移动窗口的win32gui函数,我只是找到了可以让我调整它们大小的东西。

有没有什么方法可以让我完成这两个任务中的任何一个?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-15 12:35:27

您可以使用透明PNG图像创建透明窗口,如下所示:

代码语言:javascript
复制
import tkinter as tk

# select a color as the transparent color
TRNAS_COLOR = '#abcdef'

root = tk.Tk()
root.overrideredirect(1)
root.attributes('-transparentcolor', TRNAS_COLOR)

image = tk.PhotoImage(file='/path/to/image.png')
tk.Label(root, image=image, bg=TRNAS_COLOR).pack()

# support dragging window

def start_drag(event):
    global dx, dy
    dx, dy = event.x, event.y

def drag_window(event):
    root.geometry(f'+{event.x_root-dx}+{event.y_root-dy}')

root.bind('<Button-1>', start_drag)
root.bind('<B1-Motion>', drag_window)

root.mainloop()

然后您可以使用root.geometry(...)来移动根窗口。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64364296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档