画布向下显示

问题描述 投票:0回答:1
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 是元素,但它的显示不是像要求的那样在背景上。

我不知道我正在尝试,但我没有想到。

python tkinter canvas
1个回答
0
投票

要将 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()
© www.soinside.com 2019 - 2024. All rights reserved.