我想用tkinter实现部分窗口位置透明,部分位置不透明,请给我一个示例
时间: 2024-03-03 09:49:14 浏览: 121
python中tkinter窗口位置\坐标\大小等实现示例
好的,以下是一个使用tkinter实现部分窗口位置透明,部分位置不透明的示例代码:
```python
import tkinter as tk
class TransparentWindow(tk.Tk):
def __init__(self):
super().__init__()
self.overrideredirect(True)
self.geometry("+300+300")
self.attributes('-alpha', 0.7)
self.title("Transparent Window")
self.frame = tk.Frame(self, bg='white')
self.frame.pack(fill='both', expand=True)
self.frame.bind("<ButtonPress-1>", self.start_move)
self.frame.bind("<ButtonRelease-1>", self.stop_move)
self.frame.bind("<B1-Motion>", self.on_move)
self.canvas = tk.Canvas(self.frame, bg='white', highlightthickness=0)
self.canvas.pack(fill='both', expand=True)
self.canvas.create_rectangle(0, 0, 200, 200, fill='white', outline='black')
self.canvas.create_rectangle(200, 200, 400, 400, fill='white', outline='black')
def start_move(self, event):
self.x = event.x
self.y = event.y
def stop_move(self, event):
self.x = None
self.y = None
def on_move(self, event):
deltax = event.x - self.x
deltay = event.y - self.y
x = self.winfo_x() + deltax
y = self.winfo_y() + deltay
self.geometry(f"+{x}+{y}")
if __name__ == '__main__':
app = TransparentWindow()
app.mainloop()
```
上述代码创建了一个透明窗口,并在窗口中添加了两个矩形,其中左上角的矩形为半透明状态,右下角的矩形为不透明状态。你可以通过拖动窗口来移动它。
在上述代码中,我们通过设置 `self.attributes('-alpha', 0.7)` 来将窗口设置为半透明状态。你可以通过更改 `0.7` 这个值来调整透明度。此外,我们还在窗口中添加了一个 `Canvas`,用于绘制矩形。左上角矩形的 `fill` 参数设置为 `'white'`,并将 `outline` 参数设置为 `'black'` 来使它看起来更加明显。右下角矩形的 `fill` 和 `outline` 参数也同样设置为 `'white'` 和 `'black'`。
阅读全文