python Tkinter 设置窗口透明,画布不透明
时间: 2023-11-26 11:05:40 浏览: 82
要设置窗口透明,可以使用 `attributes()` 方法来设置窗口属性。要设置画布不透明,可以使用 `Canvas` 组件的 `config()` 方法来设置画布属性。
下面是一个示例代码:
```python
import tkinter as tk
root = tk.Tk()
# 设置窗口透明
root.attributes("-alpha", 0.5)
# 创建画布
canvas = tk.Canvas(root, width=200, height=200, bg='white')
canvas.pack()
# 设置画布不透明
canvas.config(highlightthickness=0, bd=0)
root.mainloop()
```
在上面的代码中,`root.attributes("-alpha", 0.5)` 设置窗口透明度为 50%。`canvas.config(highlightthickness=0, bd=0)` 将画布的边框和高亮边框都设置为 0,使画布不透明。
相关问题
python Tkinter 创建一个完全透明的窗口,画布不透明
可以通过设置窗口的alpha值为0来实现窗口完全透明,但需要注意的是,这个方法只在Windows系统上可用,并且需要安装pywin32库。以下是示例代码:
```python
import tkinter as tk
import win32gui
root = tk.Tk()
root.attributes('-alpha', 0) # 设置窗口透明度为0
canvas = tk.Canvas(root, width=300, height=200, bg='white')
canvas.pack()
hwnd = win32gui.GetParent(canvas.winfo_id()) # 获取窗口句柄
win32gui.SetWindowLong(hwnd, win32gui.GWL_EXSTYLE,
win32gui.GetWindowLong(hwnd, win32gui.GWL_EXSTYLE) | win32gui.WS_EX_LAYERED) # 设置为分层窗口
# 将画布设置为不透明
win32gui.SetLayeredWindowAttributes(hwnd, 0, 255, win32gui.LWA_ALPHA)
root.mainloop()
```
上述代码中,通过`root.attributes('-alpha', 0)`设置窗口透明度为0,然后通过`win32gui`库将窗口设置为分层窗口,并将画布设置为不透明。
python Tkinter 创建一个完全透明的窗口,画布不透明 图形
可以通过设置窗口的透明度来实现创建一个完全透明的窗口。但是,如果想要画布不透明,可以在画布上绘制一个不透明的矩形,然后在矩形上绘制图形。
以下是一个示例代码:
```python
import tkinter as tk
root = tk.Tk()
# 设置窗口透明度
root.attributes('-alpha', 0)
# 创建画布
canvas = tk.Canvas(root, bg='white')
canvas.pack(fill=tk.BOTH, expand=True)
# 在画布上绘制不透明矩形
canvas.create_rectangle(50, 50, 150, 150, fill='blue')
# 在矩形上绘制图形
canvas.create_oval(75, 75, 125, 125, fill='green')
root.mainloop()
```
在这个例子中,我们首先将窗口的透明度设置为 0,使其完全透明。然后,我们创建了一个白色的画布,并在画布上绘制了一个不透明的蓝色矩形。最后,在矩形上绘制了一个绿色椭圆形。
注意:在某些操作系统上,完全透明的窗口可能会显示为黑色。如果遇到这种情况,可以尝试设置窗口的透明度为一个非常小的值,例如 0.001。
阅读全文