当我在Mac OS X终端上运行脚本时,我的这个脚本在Windows中运行时会显示logo.png图像,但不会显示图像(即使它为它生成足够大的空间)。
我试图创建一个单独的变量,如此问题的解决方案所描述,但无法加载图像。
非常感谢您的帮助!
# -*- coding: utf-8 -*-
import Tkinter as tk
import ttk
import tkMessageBox
from PIL import ImageTk, Image
class TestPage(tk.Frame):
def __init__(self, master, text, height, width, *args, **kwargs):
tk.Frame.__init__(self, *args, borderwidth=20, **kwargs)
self.height = height
self.width = width
#Test Frame
self.testFrame = tk.Frame(self)
self.logo = ImageTk.PhotoImage(Image.open('logo.png'))
global logo
logo = self.logo
self.logolabel=tk.Label(self.testFrame, image=self.logo)
self.logolabel.pack()
self.testFrame.pack(side=tk.LEFT, fill='both', expand = 'yes')
self.update()
self.onlift()
def onlift(self):
root.geometry('{}x{}'.format(self.width, self.height))
self.lift()
root.update()
class App(tk.Frame):
def __init__(self, *args, **kwargs):
global p1
tk.Frame.__init__(self, *args, **kwargs)
p1 = TestPage(self, 'blank', height=root.winfo_screenheight(), width=root.winfo_screenwidth())
p1.place(x=0, y=0, relwidth=1, relheight=1)
root.update()
global p1
root = tk.Tk()
root.title('LTEST01 V2.0 GUI')
app = App(root)
root.update()
root.mainloop()
答案 0 :(得分:1)
我有同样的问题。转换为RGB解决了该问题。
因此使您的代码如下:
self.logo = ImageTk.PhotoImage(Image.open('logo.png').convert('RGB'))
基本上,带有Alpha通道的透明图像似乎不起作用。
答案 1 :(得分:0)
似乎“透明掩码”,MACOS和pyinstaller的组合不起作用。 RGBA(4x8位像素,带透明蒙版的真彩色)不能正常工作。可悲的是,仅转换为RGB即可解决问题。