py文件中一个函数里面新创一个窗口怎么添加文件为背景
时间: 2023-06-25 19:06:07 浏览: 46
您可以使用tkinter模块中的Canvas组件来实现在窗口中添加图片作为背景。
具体实现方法如下:
1. 导入tkinter模块和PIL模块:
```python
import tkinter as tk
from PIL import Image, ImageTk
```
2. 创建窗口和Canvas组件:
```python
root = tk.Tk()
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()
```
3. 加载并显示图片:
```python
image = Image.open("your_image_file.jpg")
background_image = ImageTk.PhotoImage(image)
canvas.create_image(0, 0, anchor=tk.NW, image=background_image)
```
其中,`your_image_file.jpg`是您想要设置为背景的图片文件。这里使用PIL模块中的Image.open()函数打开图片文件,并使用ImageTk模块将图片转换成可在Canvas组件中显示的PhotoImage对象。然后,使用Canvas组件的create_image()方法将图片添加到Canvas中。
最后,您可以在Canvas上添加其他的组件,比如按钮或文本框等。
完整示例代码如下:
```python
import tkinter as tk
from PIL import Image, ImageTk
def new_window():
# 创建新窗口
window = tk.Toplevel(root)
window.title("New Window")
# 创建Canvas组件
canvas = tk.Canvas(window, width=500, height=500)
canvas.pack()
# 加载并显示图片
image = Image.open("your_image_file.jpg")
background_image = ImageTk.PhotoImage(image)
canvas.create_image(0, 0, anchor=tk.NW, image=background_image)
# 在Canvas上添加其他组件
button = tk.Button(canvas, text="Click me!")
button.pack()
# 创建主窗口
root = tk.Tk()
root.title("Main Window")
# 创建Canvas组件
canvas = tk.Canvas(root, width=500, height=500)
canvas.pack()
# 加载并显示图片
image = Image.open("your_image_file.jpg")
background_image = ImageTk.PhotoImage(image)
canvas.create_image(0, 0, anchor=tk.NW, image=background_image)
# 在Canvas上添加按钮
button = tk.Button(canvas, text="New Window", command=new_window)
button.pack()
# 进入消息循环
root.mainloop()
```
注意,如果图片文件不在当前工作目录下,需要指定图片文件的完整路径。