有没有办法用Tkinter创建非标准的窗口?我想在屏幕上显示一些浮动图像,里面有Tkinter小部件。想象一下像Growl for Mac,iPad上的Siri,Mac OS音量/亮度变化边框等等。如果这不可行,是否有办法摆脱窗口顶部的标题栏并关闭/最小化/调整按钮大小,并要求完成脚本(或修饰符-Q击键)才能关闭?Tkinter的非标准窗户?
2
A
回答
1
wm_overrideredirect将删除标准窗口边框。你仍然会被一个矩形窗口卡住。您可以使用wm_attributes(查找alpha
属性)调整窗口的透明度,但这只适用于Windows和Mac。
已经有在用的Tcl/Tk,你可能能够得到与Tkinter的工作,但它需要编译一些代码形状的窗户尝试。请参阅tcl'ers wiki上的Managed and shaped toplevel。
0
是的,你可以!您可以使用
app.overrideredirect(True)
其中,app = TK()
从这里你被卡住的窗口是不是顶级,虽然;它也没有任务栏位置; 来解决这个问题,我们可以使用: app.attributes('-topmost', 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)
其中TopFrame是标题栏。这种方法似乎过于复杂,但它允许直接在鼠标上移动而不移动到角落。
回答你后一个问题: 使浮动对象是很有可能的;用途:
app.overrideredirect(True)
app.image = tk.PhotoImage(file='image.GIF')
image = Label(root, image=app.image, bg='white')
app.attributes("-transparentcolor", "white")
相关问题
- 1. Tkinter在Ubuntu中删除标准窗口
- 2. 窗口中的非标准波特率
- 3. 带Qt的非标准窗口
- 4. C#中的非标准用户界面#
- 5. 标准输出到tkinter GUI
- 6. 标准化和非标准化的值
- 7. 如何组合Tkinter窗户?
- 8. AWS用户数据窗口标准AMI
- 9. 设置窗口图标tkinter
- 10. C非标准库
- 11. 非标准分配
- 12. Base64和非标准
- 13. 非标准Webfont EurostileTRegExt
- 14. 非标准连接
- 15. BeautifulSoup replace_with非标准标签
- 16. 非标准XML上的XSLT
- 17. 从非标准化的XML
- 18. 非标准的非唯一外键
- 19. XML中的非法非标准引号
- 20. 设置的Tkinter窗口的坐标
- 21. R:在非标准窗口上滚动的金额
- 22. 更改非标准窗口的大小(Adobe CS6,MonoDevelop等)
- 23. 窗体窗体标准窗体大小
- 24. Opera中的非标准标记行为
- 25. 非标准评价和PackedArray
- 26. 标准非SSL HTTP加密
- 27. 非标准后退按钮
- 28. OGRE:非标准分辨率
- 29. 瓶:从非标准位置
- 30. GTK非标准输入