如何解决在 tkinter 中显示图像的功能
我想在我的 tkinter 画布中显示图像,但它不行
# 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 举报,一经查实,本站将立刻删除。