欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2021年08月09日 10:14:59   作者:98237982379  
這篇文章主要介紹了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:

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

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

del_button的image不顯示
del_button的image不顯示

        嘗試將del_button的image指向的變量設(shè)置為局部變量,即下面所展示的代碼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)

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

button的image顯示正常
del_button的image顯示正常

         筆記:

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

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

相關(guān)文章

  • Python數(shù)據(jù)合并的concat函數(shù)與merge函數(shù)詳解

    Python數(shù)據(jù)合并的concat函數(shù)與merge函數(shù)詳解

    大家都知道concat()函數(shù)可以沿著一條軸將多個(gè)對(duì)象進(jìn)行堆疊,其使用方式類似數(shù)據(jù)庫(kù)中的數(shù)據(jù)表合并,在使用merge()函數(shù)進(jìn)行合并時(shí),默認(rèn)會(huì)使用重疊的列索引做為合并鍵,即取行索引重疊的部分,本文給大家介紹python?數(shù)據(jù)合并concat函數(shù)與merge函數(shù),感興趣的朋友一起看看吧
    2022-05-05
  • Python發(fā)送郵件功能示例【使用QQ郵箱】

    Python發(fā)送郵件功能示例【使用QQ郵箱】

    這篇文章主要介紹了Python發(fā)送郵件功能,結(jié)合實(shí)例形式分析了Python使用QQ郵箱進(jìn)行郵件發(fā)送的相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下
    2018-12-12
  • Python使用requirements.txt和pip打包批量安裝的實(shí)現(xiàn)

    Python使用requirements.txt和pip打包批量安裝的實(shí)現(xiàn)

    本文主要介紹了Python使用requirements.txt和pip打包批量安裝的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • 用Pytorch實(shí)現(xiàn)線性回歸模型的步驟

    用Pytorch實(shí)現(xiàn)線性回歸模型的步驟

    線性關(guān)系是一種非常簡(jiǎn)單的變量之間的關(guān)系,因變量和自變量在線性關(guān)系的情況下,可以使用線性回歸算法對(duì)一個(gè)或多個(gè)因變量和自變量間的線性關(guān)系進(jìn)行建模,本文主要介紹了如何利用Pytorch實(shí)現(xiàn)線性模型,需要的朋友可以參考下
    2024-01-01
  • 解決df.to_csv()中文件名的問(wèn)題

    解決df.to_csv()中文件名的問(wèn)題

    這篇文章主要介紹了解決df.to_csv()中文件名的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python 實(shí)現(xiàn)將大圖切片成小圖,將小圖組合成大圖的例子

    Python 實(shí)現(xiàn)將大圖切片成小圖,將小圖組合成大圖的例子

    這篇文章主要介紹了Python 實(shí)現(xiàn)將大圖切片成小圖,將小圖組合成大圖的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • python模擬菜刀反彈shell繞過(guò)限制【推薦】

    python模擬菜刀反彈shell繞過(guò)限制【推薦】

    這篇文章主要介紹了利用python模擬菜刀反彈shell繞過(guò)限制,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06
  • Python遠(yuǎn)程開(kāi)發(fā)環(huán)境部署與調(diào)試過(guò)程圖解

    Python遠(yuǎn)程開(kāi)發(fā)環(huán)境部署與調(diào)試過(guò)程圖解

    這篇文章主要介紹了Python遠(yuǎn)程開(kāi)發(fā)環(huán)境部署與調(diào)試過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 深入理解python中的淺拷貝和深拷貝

    深入理解python中的淺拷貝和深拷貝

    下面小編就為大家?guī)?lái)一篇深入理解python中的淺拷貝和深拷貝。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-05-05
  • 基于Python實(shí)現(xiàn)文件分類器的示例代碼

    基于Python實(shí)現(xiàn)文件分類器的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何基于Python實(shí)現(xiàn)文件分類器,目的主要是為了將辦公過(guò)程中產(chǎn)生的各種格式的文件完成整理,感興趣的可以了解一下
    2023-04-04

最新評(píng)論