创建一个窗口,有照片作为背景,有lable,entry,button
时间: 2024-01-12 13:05:38 浏览: 101
好的,以下是一个使用Python的Tkinter模块创建窗口,设置背景图像,添加标签、输入框和按钮的示例代码:
```python
from tkinter import *
root = Tk()
root.geometry("400x300")
# 设置窗口背景图像
bg_img = PhotoImage(file="background.png")
bg_label = Label(root, image=bg_img)
bg_label.place(x=0, y=0, relwidth=1, relheight=1)
# 添加标签
label = Label(root, text="请输入您的名字:", font=("Arial", 16), bg="#FFFFFF")
label.place(x=50, y=50)
# 添加输入框
entry = Entry(root, font=("Arial", 14))
entry.place(x=50, y=100)
# 添加按钮
button = Button(root, text="确定", font=("Arial", 14), bg="#FF0000", fg="#FFFFFF")
button.place(x=200, y=150)
root.mainloop()
```
其中,`background.png`是你想要设置的窗口背景图像的路径,可以根据自己的需要进行修改。运行该代码,即可创建一个带有背景图像、标签、输入框和按钮的窗口。
相关问题
怎么用Entry入一个值 导致lable的text改变
可以使用Tkinter中的StringVar()方法来实现。具体步骤如下:
1. 创建一个StringVar()对象,用于存储Entry中的值。
2. 创建一个Label对象,并将其text属性绑定到StringVar()对象上。
3. 创建一个Entry对象,并使用command参数将它绑定到函数中。
4. 在函数中,使用set()方法更新StringVar()对象的值,从而实现Label的text属性的改变。
以下是一个简单的示例代码:
```python
import tkinter as tk
def update_label(*args):
label_text.set(entry.get())
root = tk.Tk()
label_text = tk.StringVar()
label_text.set("Label")
label = tk.Label(root, textvariable=label_text)
label.pack()
entry = tk.Entry(root)
entry.pack()
entry.bind("<Return>", update_label)
root.mainloop()
```
在这个示例中,我们创建了一个StringVar()对象label_text,用于存储Label的text属性的值。然后,我们创建了一个Label对象,并将其text属性绑定到label_text上。接着,我们创建了一个Entry对象,并使用bind()方法将其绑定到update_label函数上。当用户在Entry中输入值并按下回车键时,update_label函数就会被调用,它会使用set()方法更新label_text的值,从而实现Label的text属性的改变。
改进代码,实现控件随窗口变化自适应,且不同控件间相对位置不变,代码如下:lable1 = Label(frame, text='请选择NC发货清单总表(发票折扣额)报表:') text1 = Entry(frame, bg='white', width=65) title1 = 'nc_path' button1 = Button(frame, text='浏览', width=8, command=lambda: selectExcelfile(title1, text1)) lable2 = Label(frame, text='请选择客户信息表:') text2 = Entry(frame, bg='white', width=65) title2 = 'custom_path' button2 = Button(frame, text='浏览', width=8, command=lambda: selectExcelfile(title2, text2)) lable1.place(x=40, y=30) text1.place(x=40, y=60) button1.place(x=520, y=55) lable2.place(x=40, y=90) text2.place(x=40, y=120) button2.place(x=520, y=115)
你可以使用 pack 或 grid 方法来实现控件随窗口变化自适应,同时保持不同控件间的相对位置不变。下面是使用 pack 方法的代码示例:
```
lable1 = Label(frame, text='请选择NC发货清单总表(发票折扣额)报表:')
text1 = Entry(frame, bg='white', width=65)
title1 = 'nc_path'
button1 = Button(frame, text='浏览', width=8, command=lambda: selectExcelfile(title1, text1))
lable2 = Label(frame, text='请选择客户信息表:')
text2 = Entry(frame, bg='white', width=65)
title2 = 'custom_path'
button2 = Button(frame, text='浏览', width=8, command=lambda: selectExcelfile(title2, text2))
# 使用 pack 方法自适应布局
lable1.pack(side='top', padx=20, pady=10, anchor='w')
text1.pack(side='top', padx=20, pady=5, fill='x', expand=True)
button1.pack(side='right', padx=20, pady=5)
lable2.pack(side='top', padx=20, pady=10, anchor='w')
text2.pack(side='top', padx=20, pady=5, fill='x', expand=True)
button2.pack(side='right', padx=20, pady=5)
```
在上面的代码中,我们使用了 pack 方法,并指定了不同控件的 side、padx、pady、anchor、fill 和 expand 参数来实现自适应布局和相对位置不变的效果。
其中,side 参数表示控件的位置,可以是 'top'、'bottom'、'left' 或 'right'。padx 和 pady 表示控件与窗口或其他控件之间的水平和垂直间隔。anchor 表示控件在所在区域中的对齐方式,可以是 'n'、's'、'w'、'e'、'nw'、'ne'、'sw' 或 'se'。fill 和 expand 表示控件在所在区域中自适应大小的方式,可以是 'x'、'y' 或 'both'。
阅读全文