Python 带Tkinter的非标准窗口?

Python 带Tkinter的非标准窗口?,python,tkinter,Python,Tkinter,有没有办法用Tkinter创建非标准窗口?我希望屏幕上有一个浮动图像,里面有Tkinter小部件。想一想Mac的咆哮、iPad上的Siri、Mac OS音量/亮度变化挡板等。如果这不可能,有没有办法去掉窗口顶部的标题栏和关闭/最小化/调整大小按钮,并要求脚本完成(或修改器-Q击键)关闭?将删除标准窗口边框。你仍然会被一扇长方形的窗户卡住。您可以使用(查找alpha属性)调整窗口的透明度,但这仅适用于Windows和Mac 已经有人尝试使用tcl/tk来创建成形窗口,您可能可以使用Tkinter,

有没有办法用Tkinter创建非标准窗口?我希望屏幕上有一个浮动图像,里面有Tkinter小部件。想一想Mac的咆哮、iPad上的Siri、Mac OS音量/亮度变化挡板等。如果这不可能,有没有办法去掉窗口顶部的标题栏和关闭/最小化/调整大小按钮,并要求脚本完成(或修改器-Q击键)关闭?

将删除标准窗口边框。你仍然会被一扇长方形的窗户卡住。您可以使用(查找
alpha
属性)调整窗口的透明度,但这仅适用于Windows和Mac


已经有人尝试使用tcl/tk来创建成形窗口,您可能可以使用Tkinter,尽管它需要编译一些代码。请参见tcl'ers维基。

是的,你可以!你可以用

app.overrideredirect(True)

其中app=Tk()

从这里你被困在一个不是顶级的窗口;它也没有任务栏位置; 要解决此问题,我们可以使用:
app.attributes('-top',1)
但即使现在你只有一个长方形;您需要创建一个自定义标题栏;这只是一个带有标题、退出、最小化按钮等的框架

要从标题栏移动窗口,我们使用:

    def get_pos(event):
    xwin = app.winfo_x()
    ywin = app.winfo_y()
    startx = event.x_root
    starty = event.y_root

    ywin = ywin - starty
    xwin = xwin - startx


    def move_window(event):
    app.geometry("400x400" + '+{0}+{1}'.format(event.x_root + xwin, event.y_root + ywin))
    startx = event.x_root
    starty = event.y_root


    app.TopFrame.bind('<B1-Motion>', move_window)
app.TopFrame.bind('<Button-1>', get_pos)
app.overrideredirect(True)
app.image = tk.PhotoImage(file='image.GIF')
image = Label(root, image=app.image, bg='white')
app.attributes("-transparentcolor", "white")