激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類(lèi)導(dǎo)航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務(wù)器之家 - 腳本之家 - Python - Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問(wèn)題及解決方法

Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問(wèn)題及解決方法

2021-12-17 12:5198237982379 Python

這篇文章主要介紹了Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

        bug如題目所描述。嘗試過(guò)將按鈕的image指向的變量del_icon設(shè)置為global全局變量,但是不成功,會(huì)提示如“

attributeerror: 'photoimage' object has no attribute '_photoimage__photo'

”的錯(cuò)誤。代碼1是導(dǎo)致bug的源頭。

        代碼1:

?
1
2
3
4
5
6
7
8
#!/bin/env python3
from pil import imagetk
import tkinter as tk
...
self.del_button = tk.button(self.frame, text='del', width=20, height=20)
self.del_button.config(image=imagetk.photoimage(resize(os.getcwd() + '/delete.png', 0)))
self.del_button.bind('<button-1>', self.delete_selected_image)
self.del_button.grid(row=0, column=0, sticky=tk.w)

Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問(wèn)題及解決方法

        結(jié)果刪除按鈕不顯示image,按鈕上顯示空白:

 

 
Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問(wèn)題及解決方法
del_button的image不顯示

 

        嘗試將del_button的image指向的變量設(shè)置為局部變量,即下面所展示的代碼2。

        代碼2:

?
1
2
3
4
5
6
7
8
9
#!/bin/env python3
from pil import imagetk
import tkinter as tk
...
self.del_button = tk.button(self.frame, text='del', width=20, height=20)
del_icon = imagetk.photoimage(resize(os.getcwd()+'/delete.png', 0))
self.del_button.config(image=del_icon)
self.del_button.bind('<button-1>', self.delete_selected_image)
self.del_button.grid(row=0, column=0, sticky=tk.w)

Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問(wèn)題及解決方法

        結(jié)果刪除按鈕的image顯示正常:

 

 
Python3.8 + Tkinter: Button設(shè)置image屬性不顯示的問(wèn)題及解決方法
del_button的image顯示正常

 

         筆記:

                不明所以的bug。判斷潛在原因是:gc的問(wèn)題。image屬性需要指向明確的內(nèi)存地址。方法返回的臨時(shí)變量地址調(diào)用后即被回收,導(dǎo)致image指向空地址。


        resize()的代碼:

?
1
2
3
4
5
6
7
8
9
#!/bin/env python3
from pil import image
 
def resize(path):
    image = image.open(path)
    raw_width, raw_height = image.size[0], image.size[1]
    min_height = 20
    min_width = int(raw_width * min_height / raw_height)
    return image.resize((min_width, min_height))

到此這篇關(guān)于python3.8 + tkinter: button設(shè)置image屬性不顯示的問(wèn)題的文章就介紹到這了,更多相關(guān)python tkinter按鈕不顯示內(nèi)容請(qǐng)搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://blog.csdn.net/qq_21264377/article/details/119523050

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 国产 视频 一区二区 | 刘亦菲一区二区三区免费看 | 久在线播放 | 精品久久久久久国产 | 青热久思思 | 国产亚洲欧美日韩在线观看不卡 | 亚洲日韩精品欧美一区二区 | 久久久经典视频 | 一区二区三区在线观看国产 | 欧美999| 亚洲一区在线视频观看 | 日本aaaa片毛片免费观看视频 | 亚洲一区二区观看播放 | 日本欧美在线播放 | 91免费大片 | 激情小说区 | 国产一级aaa全黄毛片 | 91午夜少妇三级全黄 | 欧美性生活免费视频 | 欧美黄成人免费网站大全 | 欧美高清一级片 | 国产精品一区在线观看 | 国产91亚洲精品久久久 | 亚洲精品久久久久久久久久 | 欧美一级淫片a免费播放口 九九视频精品在线 | 成人辣文 | 黄视频免费在线观看 | 毛片118极品美女写真 | 19禁国产精品福利视频 | 久久99精品久久久久久236 | 日本欧美一区二区三区在线观看 | 亚洲网站在线观看 | 午夜久久视频 | 成人电影毛片 | 经典三级av在线 | 亚洲二区三区在线 | 国产剧情在线观看一区二区 | av中文字幕免费在线观看 | aaaaa国产欧美一区二区 | 国产一区二区成人在线 | 欧美成人精品一区二区 |