用python写一个界面,要有四个板块,垂直分布,界面整体以白色为背景。 第一个板块实现一个输入按钮,正方形,中间是加号的按钮,按下这个按钮后隐藏按钮,转为显示一张图片。外面有个框,下面有三个按钮。第二个板块实现一个广告条显示功能。 第三个板块实现一个广告条显示功能。 第四个板块实现图片滚动显示功能。
时间: 2024-03-26 15:38:17 浏览: 21
好的,以下是一个实现你要求的界面的 Python 代码:
```python
import tkinter as tk
from PIL import Image, ImageTk
class GUI:
def __init__(self, master):
self.master = master
self.master.title("My GUI")
self.master.config(bg="white")
# First board
self.board1 = tk.Frame(self.master, bg="white")
self.board1.pack(side="top", fill="x")
self.img = Image.open("image.jpg")
self.img = self.img.resize((200, 200), Image.ANTIALIAS)
self.img = ImageTk.PhotoImage(self.img)
self.add_btn = tk.Button(self.board1, text="+", font=("Arial", 24), command=self.show_img)
self.add_btn.config(width=2, height=1)
self.add_btn.pack(side="left", padx=10, pady=10)
self.img_label = tk.Label(self.board1, image=self.img)
self.img_label.pack(side="left", padx=10, pady=10)
self.frame = tk.Frame(self.board1, bg="white")
self.frame.pack(side="left", padx=10, pady=10)
self.label = tk.Label(self.frame, text="Some text", font=("Arial", 16), bg="white")
self.label.pack(side="top", pady=10)
self.btn1 = tk.Button(self.frame, text="Button 1", font=("Arial", 16))
self.btn1.pack(side="left", padx=10)
self.btn2 = tk.Button(self.frame, text="Button 2", font=("Arial", 16))
self.btn2.pack(side="left", padx=10)
self.btn3 = tk.Button(self.frame, text="Button 3", font=("Arial", 16))
self.btn3.pack(side="left", padx=10)
# Second board
self.board2 = tk.Frame(self.master, bg="white")
self.board2.pack(side="top", fill="x")
self.ad1 = tk.Label(self.board2, text="Advertisement 1", font=("Arial", 16), bg="white")
self.ad1.pack(side="left", padx=10, pady=10)
# Third board
self.board3 = tk.Frame(self.master, bg="white")
self.board3.pack(side="top", fill="x")
self.ad2 = tk.Label(self.board3, text="Advertisement 2", font=("Arial", 16), bg="white")
self.ad2.pack(side="left", padx=10, pady=10)
# Fourth board
self.board4 = tk.Frame(self.master, bg="white")
self.board4.pack(side="top", fill="both", expand=True)
self.canvas = tk.Canvas(self.board4, bg="white")
self.canvas.pack(side="left", fill="both", expand=True)
self.scrollbar = tk.Scrollbar(self.board4, orient="vertical", command=self.canvas.yview)
self.scrollbar.pack(side="right", fill="y")
self.canvas.config(yscrollcommand=self.scrollbar.set)
self.canvas.bind("<Configure>", lambda e: self.canvas.config(scrollregion=self.canvas.bbox("all")))
self.frame2 = tk.Frame(self.canvas, bg="white")
self.canvas.create_window((0, 0), window=self.frame2, anchor="nw")
for i in range(20):
label = tk.Label(self.frame2, text=f"Label {i}", font=("Arial", 16), bg="white")
label.pack(side="top", padx=10, pady=10)
def show_img(self):
self.add_btn.pack_forget()
self.img_label.pack(side="left", padx=10, pady=10)
if __name__ == "__main__":
root = tk.Tk()
app = GUI(root)
root.mainloop()
```
这个代码使用了 `tkinter` 库和 `PIL` 库来实现一个 GUI 界面,其中包含了四个板块:
1. 第一个板块包含了一个正方形的按钮和一张图片,按下按钮后会隐藏按钮并显示图片。此外,还有一个框和三个按钮。
2. 第二个板块实现了一个广告条显示功能。
3. 第三个板块实现了另一个广告条显示功能。
4. 第四个板块实现了一个图片滚动显示功能。
希望这个代码可以帮助你实现你想要的界面。