python - 如何在 tkinter 中使用 Canvas 在不同的帧上获取两个图像?
问题描述
在下面的代码中,我尝试使用 Canvas 将两个图像放在两个单独的窗口框架上
PANEL_HEIGHT = 440
PANEL_WIDTH = 304
BKG_IMG = "./backgrounds/Wireframe- welcome screen – 1.png"
MANAGE_ACC_BKG_IMG = "./backgrounds/Wireframe- welcome screen – 1.png"
class window1:
def __init__(self):
self.panel = Tk()
self.panel.geometry(f"{PANEL_WIDTH}x{PANEL_HEIGHT}")
self.canvas = Canvas(self.panel,width=2*PANEL_WIDTH, height=2*PANEL_HEIGHT)
canvas = self.canvas
img = PhotoImage(file=BKG_IMG)
canvas.create_image(PANEL_WIDTH,PANEL_HEIGHT,image=img)
canvas.place(x=-(PANEL_WIDTH/2),y=-(PANEL_HEIGHT/2))
class window2:
def __init__(self):
self.panel = Tk()
self.panel.geometry(f"{PANEL_WIDTH}x{PANEL_HEIGHT}")
self.canvas = Canvas(self.panel, width=2 * PANEL_WIDTH, height=2 * PANEL_HEIGHT)
canvas = self.canvas
img = PhotoImage(file=MANAGE_ACC_BKG_IMG)
canvas.create_image(PANEL_WIDTH, PANEL_HEIGHT, image=img)
canvas.place(x=-(PANEL_WIDTH / 2), y=-(PANEL_HEIGHT / 2))
window1()
window2()
在调用这两个类时,我收到“图像'pyimage2'不存在”错误
两个文件的绝对路径是
D:\pyAut\pythonBootCamp\backgrounds\manage_acc_ui_bkg.png D:\pyAut\pythonBootCamp\main.py
任何人都可以告诉如何完成任务????
解决方案
希望您对所提供的信息感到满意
import tkinter as tk
from PIL import ImageTk, Image
PANEL_HEIGHT = 440
PANEL_WIDTH = 304
main = tk.Tk()
BKG_IMG = "./backgrounds/Wireframe- welcome screen – 1.png"
MANAGE_ACC_BKG_IMG = "./backgrounds/Wireframe- welcome screen – 1.png"
class window1:
window = tk.Toplevel(main)
window.geometry(f"{PANEL_WIDTH}x{PANEL_HEIGHT}")
window.title("Window 1")
img = ImageTk.PhotoImage(Image.open(BKG_IMG))
canvas = tk.Canvas(window, width=PANEL_WIDTH, height=PANEL_HEIGHT, background="white")
canvas.pack()
canvas.create_image(PANEL_WIDTH, PANEL_HEIGHT, image=img)
class window2:
main.title("Window 2")
main.geometry(f"{PANEL_WIDTH}x{PANEL_HEIGHT}")
img = ImageTk.PhotoImage(Image.open(MANAGE_ACC_BKG_IMG))
canvas = tk.Canvas(main, width=PANEL_WIDTH, height=PANEL_HEIGHT, background="white")
canvas.pack()
canvas.create_image(PANEL_WIDTH, PANEL_HEIGHT, image=img)
window1()
window2()
main.mainloop()
推荐阅读
- moodle - Eroor 在cpanel上安装moodle
- python - 如何使用熊猫提取数据矩阵?
- google-cloud-platform - 数据管道:Google Cloud Function 中的 URL 请求以 VPC 连接器上的“崩溃”结束
- javascript - 新输入元素的外观不适用于 addEventListener
- pip - 在 Ubuntu 中安装 python 3.6
- javascript - D3折线图悬停时相同的刻度给出不同的值
- ruby-on-rails - Rails API,设计用户注册,使用 Vue Js 注册 COR
- python - write() 参数必须是 str,而不是 pyhdbcli.ResultRow
- reactjs - 4 状态“进度”栏反应组件
- stripe-payments - 为什么 Stripe.js 在 paymentRequest 和 PaymentIntent 中重复选项