热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无法使用python在tkinter中将图像显示为背景

我试图将背景图像提供给我的Tkinter应用程序,但没有错误,也无法看到该图像。

我试图将背景图像提供给我的Tkinter应用程序,但没有错误,也无法看到该图像。我正在尝试使导航屏幕中放置其他图像背景。

我在实际代码中使用下面提到的几行将图像放置在框架中

Frame2 = tk.Frame(self.master)
Frame2.pack(side="left",fill="both",pady=10,anchor='w',expand=True )
photo = tk.PhotoImage(file="images/BG.jpg")
label = tk.Label(Frame2,image=photo)
label.image = photo
label.place(x=0,y=0)

实际代码:

import tkinter as tk
from tkinter.filedialog import asksaveasfile
from tkinter import messagebox
from PIL import ImageTk,Image
class SampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
self._frame = None
self.ard_stat = read_json(JSON_PATH)
self.switch_frame(StartPage)
def switch_frame(self,frame_class):
"""Destroys current frame and replaces it with a new one."""
new_frame = frame_class(self)
if self._frame is not None:
self._frame.destroy()
self._frame = new_frame
self._frame.pack()
class StartPage(tk.Frame):
def loopCap(self):
with open(JSON_PATH) as json_file1:
self.data = json.load(json_file1)
#print(self.data)
if self.data['status'] == 'actIVE': #and (self.data['RH_img']!= 'null' or self.data['LH_img']!= 'null')
a = self.text.set(self.data['status'])
b = self.text1.set(self.data['RH_cnt'])
c = self.text2.set(self.data['LH_cnt'])
d = self.text3.set(self.data['barcode'])
return self.text,self.text1,self.text2,self.text3,self.data
def next_save(self):
new_string = self.data['barcode']
new_folder = os.path.join(DATA_PATH,new_string)
if os.path.exists(new_folder):
#print("Folder Already Exists If Condition")
tk.messagebox.showinfo("Info","Folder Already Exists")
else:
#os.isfile(new_string)
#print("Folder Already Exists")
#tkMessageBox.showinfo("Info","Folder Already Exists")
#print("Make Directory Else Condition")
json_dict = read_json(JSON_PATH)
json_dict.update({"frontend_status": "True"})
dump_to_json(json_dict,JSON_PATH)
os.mkdir(new_folder)
for i in range(0,len(data)):
folder_name = os.path.join(DATA_PATH,new_string,data[i])
os.mkdir(folder_name)
files = [('All Files','*.*'),('Python Files','*.py'),('Text Document','*.txt')]
file = asksaveasfile(initialdir=folder_name,filetypes=files,defaultextension=files)
json_dict = read_json(JSON_PATH)
json_dict.update({"frontend_status": "False"})
dump_to_json(json_dict,JSON_PATH)
self.master.after(500,self.loopCap)
def __init__(self,master):
super().__init__(master)
self.master.geometry("1000x700+%d+%d" % (((self.master.winfo_screenwidth() / 2.) - (1280 / 2.)),((self.master.winfo_screenheight() / 2.) - (720 / 2.))))
#self.master.state('zoomed')
self.master.config(bg='powder blue')
#myvar = self.master
Frame1 = tk.Frame(self.master)
Frame1.pack(side="bottom",fill="x",anchor='w')
Frame2 = tk.Frame(self.master)
Frame2.pack(side="left",expand=True )
photo = tk.PhotoImage(file="images/BG.jpg")
label = tk.Label(Frame2,image=photo)
label.image = photo
label.place(x=0,y=0)
tk.Label(Frame2,text=' Decal Check ',fOnt=('arial',25,'bold'),bg='powder blue',fg='black',anchor='w').grid(column=0,pady=2)
b = tk.Button(Frame2,text="Add New Files",command= self.next_save)
b.grid(row=11,column=1,pady=5,sticky='w')
self.master.after(500,self.loopCap)
if __name__ == "__main__":
app = SampleApp()
app.mainloop()

对此的建议将非常有帮助

编辑
按照建议的答案,我在photo = tk.PhotoImage(file="images/BG.jpg")png中使用了ImageTk.PhotoImage(file="images/BG.jpg"),但是每次我的屏幕如下图所示布置时:

无法使用python在tkinter中将图像显示为背景

注意:我正在使用Pycharm检查窗口背景



PhotoImage类可以从文件中读取GIF和PGM / PPM图像:
https://effbot.org/tkinterbook/photoimage.htm

请将您的JPG图片转换为适当的格式。


推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文介绍了iOS数据库Sqlite的SQL语句分类和常见约束关键字。SQL语句分为DDL、DML和DQL三种类型,其中DDL语句用于定义、删除和修改数据表,关键字包括create、drop和alter。常见约束关键字包括if not exists、if exists、primary key、autoincrement、not null和default。此外,还介绍了常见的数据库数据类型,包括integer、text和real。 ... [详细]
  • 基于dlib的人脸68特征点提取(眨眼张嘴检测)python版本
    文章目录引言开发环境和库流程设计张嘴和闭眼的检测引言(1)利用Dlib官方训练好的模型“shape_predictor_68_face_landmarks.dat”进行68个点标定 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 电话号码的字母组合解题思路和代码示例
    本文介绍了力扣题目《电话号码的字母组合》的解题思路和代码示例。通过使用哈希表和递归求解的方法,可以将给定的电话号码转换为对应的字母组合。详细的解题思路和代码示例可以帮助读者更好地理解和实现该题目。 ... [详细]
  • 本文介绍了游标的使用方法,并以一个水果供应商数据库为例进行了说明。首先创建了一个名为fruits的表,包含了水果的id、供应商id、名称和价格等字段。然后使用游标查询了水果的名称和价格,并将结果输出。最后对游标进行了关闭操作。通过本文可以了解到游标在数据库操作中的应用。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 这是一个愚蠢的问题,但我只是对此感到好奇.假设我在Pythonshell,我有一些我查询的数据库对象.我做:db.query(的queryString)该查询在0xffdf842c ... [详细]
author-avatar
大东o世界
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有