校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Python3.8 + Tkinter: Button設置image屬性不顯示的問題及解決方法

Python3.8 + Tkinter: Button設置image屬性不顯示的問題及解決方法

熱門標簽:地圖標注與注銷 電梯新時達系統外呼顯示e 旅游廁所地圖標注怎么弄 成都呼叫中心外呼系統哪家強 南昌地圖標注 宿州電話機器人哪家好 無錫智能外呼系統好用嗎 百應電話機器人總部 西青語音電銷機器人哪家好

        Bug如題目所描述。嘗試過將按鈕的image指向的變量del_icon設置為global全局變量,但是不成功,會提示如“

AttributeError: 'PhotoImage' object has no attribute '_PhotoImage__photo'

”的錯誤。代碼1是導致bug的源頭。

        代碼1:

#!/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)

        結果刪除按鈕不顯示image,按鈕上顯示空白:

del_button的image不顯示

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

        代碼2:

#!/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)

        結果刪除按鈕的image顯示正常:

del_button的image顯示正常

         筆記:

                不明所以的bug。判斷潛在原因是:GC的問題。image屬性需要指向明確的內存地址。方法返回的臨時變量地址調用后即被回收,導致image指向空地址。


        resize()的代碼:

#!/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))

到此這篇關于Python3.8 + Tkinter: Button設置image屬性不顯示的問題的文章就介紹到這了,更多相關Python Tkinter按鈕不顯示內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python tkinter 獲得按鈕的文本值
  • python基于tkinter點擊按鈕實現圖片的切換
  • 在python tkinter界面中添加按鈕的實例
  • Python tkinter布局與按鈕間距設置方式
  • Python的Tkinter點擊按鈕觸發事件的例子
  • Python 窗體(tkinter)按鈕 位置實例
  • python3 tkinter實現點擊一個按鈕跳出另一個窗口的方法
  • python-tkinter之按鈕的使用,開關方法

標簽:許昌 渭南 濰坊 雅安 七臺河 辛集 西安 贛州

巨人網絡通訊聲明:本文標題《Python3.8 + Tkinter: Button設置image屬性不顯示的問題及解決方法》,本文關鍵詞  Python3.8,Tkinter,Button,設置,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python3.8 + Tkinter: Button設置image屬性不顯示的問題及解決方法》相關的同類信息!
  • 本頁收集關于Python3.8 + Tkinter: Button設置image屬性不顯示的問題及解決方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 广昌县| 宜宾市| 泾源县| 秭归县| 仙游县| 富裕县| 柳河县| 广宗县| 江陵县| 金平| 韶关市| 谢通门县| 民权县| 萨迦县| 湖北省| 来安县| 明星| 盐池县| 东丰县| 同德县| 白河县| 烟台市| 淮南市| 汕头市| 富川| 留坝县| 西乌珠穆沁旗| 崇礼县| 扶余县| 静乐县| 五寨县| 京山县| 淮北市| 图们市| 屏东市| 达日县| 乌恰县| 清流县| 庆云县| 石屏县| 萝北县|