微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 tkinter 中显示图像的功能

如何解决在 tkinter 中显示图像的功能

我想在我的 tkinter 画布中显示图像,但它不行

解决时没有显示任何错误

我想获取标志图像并将其显示在 label3 中

# import Libs

import  tkinter as tk
import requests
from PIL import Image,ImageTk

# def an function that get weather info with api
def getweather(canvas):
    city = cty_input.get()
    city = str(city)
    api = "http://api.openweathermap.org/data/2.5/weather?q="+city+"&appid=be7760d826e9776fd14ff7385ae3abac"
    print(api)
    req = requests.get(api).json()
    try:
        main_d = req["weather"][0]["main"]
        temp = req["main"]["temp"]
        temp = temp - 273.15
        temp = int(temp)
        pres = req["main"]["pressure"]
        tws = req["wind"]["speed"]
        contry_code = req["sys"]["country"]
        finfo = "Main: " + str(main_d) + "\n" + "Temp: " + str(temp) + " °C"
        fdata = "Wind speed: " + str(tws)+ " M/S" +"\n" + "Pressure: " + str(pres)
        
    
    except:
        finfo = "404"
        fdata = "City not fond"
            
    label1.config(text = finfo)
    label2.config(text = fdata)
    response = requests.get("https://www.countryflags.io/%s/flat/64.png" % contry_code)
    file = open("%s.png" % contry_code,"wb")
    file.write(response.content)
    file.close()
    image1 = Image.open("C:/Users/SkBrut/Desktop/Python Projects/%s.png" % contry_code)
    test = ImageTk.PhotoImage(image1)
    label3.config(image = test)
    


#Create canvas
canvas =  tk.Tk()
#canvas size
canvas.geometry("600x550")
#canvas Title
canvas.title("هوا شناسی")

# def fonts
f  = ("cascadia mono",15,"bold")
t  = ("cascadia mono",35,"bold")

# get Entry from the user
cty_input = tk.Entry(canvas,font = t)
cty_input.pack(side= 'top',fill = 'x',pady = 30)
cty_input.focus()
cty_input.bind('<Return>',getweather)

# def to Box for text
label1 = tk.Label(canvas,font = t)
label1.pack()
label2 = tk.Label(canvas,font =  f)
label2.pack()
label3 = tk.Label(canvas)
label3.pack(side = "bottom",fill = "both",expand = True)

# stop app
canvas.mainloop()


因为你可以看到我的代码,我想创建一个可以获取天气的画布并将其显示在 label1 和 label2 中,但我想显示城市区域的旗帜

sadasdasdas 达 达 标准差 阿斯达 adasdadasldjaldj asidjoaisd asoidjasidj as 作为 dasdijalsdj 一个sdpasdlajd 作为 dliajldja

一个sdajdlajd

as d[aosd;aokdpfwofwoqeifweklfjweif

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。