import customtkinter as ctk
from PIL import Image,ImageTk
import tkinter
def GoToAdkar():
Main_Canvas.pack_forget()
window = ctk.CTk()
window.geometry("450x600")
Main_Frame = ctk.CTkFrame(window,width=450,height=600)
Main_Frame.pack()
Main_Canvas = ctk.CTkCanvas(Main_Frame, width=450, height=600,background="green",highlightthickness=0)
img= ImageTk.PhotoImage(Image.open("main.png"))
Wel_img = tkinter.Label(Main_Frame,image=img)
Wel_img.pack()
Main_Canvas.create_text(225,40,text="اذكار المسلم",font=("Arial",40),fill="#262626")
Main_Canvas.create_text(225,38,text="اذكار المسلم",font=("Arial",40),fill="grey")
Main_Canvas.create_text(225,36,text="اذكار المسلم",font=("Arial",40),fill="white")
Main_Canvas.create_line(70,75,400,75,width=4,fill="green")
Main_Canvas.create_line(90,85,380,85,width=4,fill="green")
Main_Canvas.pack()
AdkarGoButton = ctk.CTkButton(Main_Canvas, text="بعض اذكار المسلم",corner_radius=0,
font=("Arial",30), width= 200,height=50,fg_color="#37692f"
,hover_color="#264d20",command=GoToAdkar)
AdkarGoButton.place(x=125,y=130)
window.mainloop()
我想在图像上渲染 main_canvas 而不向下。
wel_img 是背景,main_canvas 是元素,但它的显示不是像要求的那样在背景上。
我不知道我正在尝试,但我没有想到。
要将 Main_Canvas 渲染在 Wel_img 背景图像上,您需要使用 place() 方法将 Main_Canvas 放置在图像顶部。您可以通过以下方式调整代码来实现这一目标:
import customtkinter as ctk
from PIL import Image, ImageTk
import tkinter
def GoToAdkar():
Main_Canvas.pack_forget()
window = ctk.CTk()
window.geometry("450x600")
Main_Frame = ctk.CTkFrame(window, width=450, height=600)
Main_Frame.pack()
# Load the background image
img = ImageTk.PhotoImage(Image.open("main.png"))
# Create a label to display the background image
Wel_img = tkinter.Label(Main_Frame, image=img)
Wel_img.place(x=0, y=0, relwidth=1, relheight=1) # Place the image label to cover the whole frame
Main_Canvas = ctk.CTkCanvas(Main_Frame, width=450, height=600, background="", highlightthickness=0)
Main_Canvas.place(x=0, y=0) # Place the canvas at the top-left corner of the frame
Main_Canvas.create_text(225, 40, text="اذكار المسلم", font=("Arial", 40), fill="#262626")
Main_Canvas.create_text(225, 38, text="اذكار المسلم", font=("Arial", 40), fill="grey")
Main_Canvas.create_text(225, 36, text="اذكار المسلم", font=("Arial", 40), fill="white")
Main_Canvas.create_line(70, 75, 400, 75, width=4, fill="green")
Main_Canvas.create_line(90, 85, 380, 85, width=4, fill="green")
AdkarGoButton = ctk.CTkButton(Main_Canvas, text="بعض اذكار المسلم", corner_radius=0,
font=("Arial", 30), width=200, height=50, fg_color="#37692f",
hover_color="#264d20", command=GoToAdkar)
AdkarGoButton.place(x=125, y=130)
window.mainloop()