Python Tkinter Treeviewは、画像を列の値として追加します

diegoiva

ツリービューのすべての行の最初の列に画像を追加しようとしていますが、何をしても、実際の画像ではなく、常に「pyimage1」というオブジェクトの名前が表示されます。この画像が示すように

私が使っているコードはこんな感じです。

    from tkinter import PhotoImage.
    self._img = PhotoImage(file="resources\information_picto.gif")
    self.tree.insert('', 'end', values= self._image,self.name, self.status, self.cores, self.turn, self.added_time)

pngで試してみましたが、同じ結果で、画像オブジェクトが正しく作成されていることがわかりました。デバッグ時に画像のプロパティを確認できますが、ツリービューの行に表示させることができないためです。

編集:

 def __init__(self, master, **kw):
    self.SortDir = True
    f = ttk.Frame(master)
    f.pack(fill=BOTH, expand=True)
    self.dataCols = ('Project Name', 'Status', 'Cores', 'Turn', 'Added date/time')
    self.tree = ttk.Treeview(columns=self.dataCols,
                             show='headings')
    self.tree.column("Project Name", anchor="center")

    self.tree.grid(in_=f, row=0, column=0, sticky=NSEW)
    f.rowconfigure(0, weight=1)
    f.columnconfigure(0, weight=1)
    style = ttk.Style(master)
    style.configure('Treeview', rowheight=38)

    self._img = PhotoImage(file="resources\information_picto.gif")  
    self.tree.insert('', 'end', text="#0's text", image=self._img,
                     value=("A's value", "B's value"))

私は上記のコードで試しています、それはあなたのものとかなり似ています、しかし私は私のエラーを見つけることができません、しかし私は「テキスト」または「画像」フィールドが行に現れるのを見ました、私が「価値」として渡された、何か考えはありますか?

マレーグマ

メソッドのimage引数を使用して画像を表示できますw.insert下記参照。

from tkinter import PhotoImage.
self._img = PhotoImage(file="resources\information_picto.gif")
self.tree.insert('', 'end', text='Information_picto.gif', open=True, image=self._img, 
                 value=(self.name, self.status, self.cores, self.turn, self.added_time))

編集:

これは、ttk.Treeviewウィジェットの基本的なセットアップと、ウィジェットの#0列と1行目(見出しの下)に画像を含める方法を示すスクリプトの例です。

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import tkinter as tk
import tkinter.ttk as ttk

class App(ttk.Frame):

    def __init__(self, parent=None, *args, **kwargs):
        ttk.Frame.__init__(self, parent)
        self.parent = parent

        # Create Treeview 
        self.tree = ttk.Treeview(self, column=('A','B'), selectmode='none', height=7)
        self.tree.grid(row=0, column=0, sticky='nsew')

        # Setup column heading
        self.tree.heading('#0', text=' Pic directory', anchor='center')
        self.tree.heading('#1', text=' A', anchor='center')
        self.tree.heading('#2', text=' B', anchor='center')
        # #0, #01, #02 denotes the 0, 1st, 2nd columns

        # Setup column
        self.tree.column('A', anchor='center', width=100)
        self.tree.column('B', anchor='center', width=100)

        # Insert image to #0 
        self._img = tk.PhotoImage(file="imagename.gif") #change to your file path
        self.tree.insert('', 'end', text="#0's text", image=self._img,
                         value=("A's value", "B's value"))


if __name__ == '__main__':
    root = tk.Tk()
    root.geometry('450x180+300+300')

    app = App(root)
    app.grid(row=0, column=0, sticky='nsew')

    root.rowconfigure(0, weight=1)
    root.columnconfigure(0, weight=1)

    root.mainloop()

写真を追加しました。

編集に応答する:説明については、スクリプトのコメントを参照してください。また、Treeviewウィジェットの使用方法をよりよく理解するために、私が提供した以前のスクリプトを試してみることをお勧めします。楽しむ。

#!/usr/bin/python3
# -*- coding: utf-8 -*-


# tkinter modules
import tkinter as tk
import tkinter.ttk as ttk

class App(ttk.Frame):

     def __init__(self, master, **kw):
        self.SortDir = True
        #f = ttk.Frame(master) #1. this widget is self, no need to assign to f. 2. You missed out .__init__().
        ttk.Frame.__init__(self, master)
        #f.pack(fill=tk.BOTH, expand=True)# redundant. done by app.grid


        #self.dataCols = ('Project Name', 'Status', 'Cores', 'Turn', 'Added date/time')
        #I have removed 'Project Name' since it is #0. self.dataCols is for #01, #02, .. onwards
        self.dataCols = ('Status', 'Cores', 'Turn', 'Added date/time')
        #self.tree = ttk.Treeview(self, columns=self.dataCols, show='headings')
        # Did not define widget's parent? I have added. Picture not shown because u used option show='headings'
        self.tree = ttk.Treeview(self, columns=self.dataCols)
        #self.tree.column("Project Name", anchor="center")        
        #self.tree.grid(in_=f, row=0, column=0, sticky=tk.NSEW)
        # I have removed "in_=f" since parent has been defined.
        self.tree.grid(row=0, column=0, sticky=tk.NSEW)

        # Setup column heading
        self.tree.heading('#0', text='Project Name', anchor='center')
        self.tree.heading('#1', text='Status', anchor='center')
        self.tree.heading('#2', text='Cores', anchor='center')
        self.tree.heading('#3', text='Turn', anchor='center')
        self.tree.heading('#4', text='Added date/time', anchor='center')


        #f.rowconfigure(0, weight=1) # Use with .grid but not for .pack positioning method
        #f.columnconfigure(0, weight=1) # same as above
        style = ttk.Style(master)
        style.configure('Treeview', rowheight=38)

        self._img = tk.PhotoImage(file="test50.gif")  
        self.tree.insert('', 'end', text="#0's text", image=self._img,
                         value=("A's value", "B's value"))

if __name__ == '__main__':
    root = tk.Tk()
    root.geometry('450x180+300+300')

    app = App(root)
    app.grid(row=0, column=0, sticky='nsew')

    root.rowconfigure(0, weight=1)
    root.columnconfigure(0, weight=1)

    root.mainloop()

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Python、Sqlite - tkinter ラベルの sqlite DB に (Blob または base64 文字列として) 保存された画像を配置する方法

分類Dev

Python Tkinterを使用して画像を反復する方法は?

分類Dev

TkinterとPython3を使用して32ビットのunsignedint画像を表示する

分類Dev

PythonのTkinter、列挙

分類Dev

python / tkinterは、ボタンを押すと、単語の個々の文字をラベルに追加します

分類Dev

python 3tkinter画像

分類Dev

Python | tkinter:tkinter.ENDは何をしますか?

分類Dev

Python ... Tkinterの衝突

分類Dev

Pythonはtkinterのlist=[]のすべてのエントリを保存します

分類Dev

Tkinter Pythonで文字列の高さを測定しますか?

分類Dev

Python Tkinterは、名前の前にHiを付けて名前を表示します

分類Dev

Python-tkinterのIntVar / entryは0のみを返します

分類Dev

Python tkinter treeview get / 選択したアイテムの親名を返す

分類Dev

Python Tkinterはaskopenfilenames()の結果を取得します

分類Dev

Pythonは現在のtkinterテキストを変更します

分類Dev

Python tkinter画像ラベルは、一部の画像をランダムに表示しますが、他の画像は表示しません

分類Dev

Python / Tkinter-テキストボックスの背景を画像にしますか?

分類Dev

TkinterとPythonのリスト

分類Dev

[Python] [Tkinter]フラグを追加して、ラベルの前景をループで赤に変えますか?

分類Dev

Python-tkinterコンボボックスは値を保存します

分類Dev

Tkinter-2Dの色の配列を画像として表示する方法は?

分類Dev

Python Tkinter-root.destroy()の後のエントリから値を取得します

分類Dev

Python3でtkinterを使用して画像を開く

分類Dev

Python3.6でImageTkとTkinterを使用してAttributeErrorを修正する方法は?

分類Dev

Pythonのtkinterメニューから戻り値を取得します

分類Dev

Python / Tkinter-「。」を変更します。を通って "、"

分類Dev

python tkinter 画像ボタンの使い方は?

分類Dev

マウスの位置Python Tkinter

分類Dev

tkinterエントリ値を取得しようとするとPythonがエラーを出している

Related 関連記事

  1. 1

    Python、Sqlite - tkinter ラベルの sqlite DB に (Blob または base64 文字列として) 保存された画像を配置する方法

  2. 2

    Python Tkinterを使用して画像を反復する方法は?

  3. 3

    TkinterとPython3を使用して32ビットのunsignedint画像を表示する

  4. 4

    PythonのTkinter、列挙

  5. 5

    python / tkinterは、ボタンを押すと、単語の個々の文字をラベルに追加します

  6. 6

    python 3tkinter画像

  7. 7

    Python | tkinter:tkinter.ENDは何をしますか?

  8. 8

    Python ... Tkinterの衝突

  9. 9

    Pythonはtkinterのlist=[]のすべてのエントリを保存します

  10. 10

    Tkinter Pythonで文字列の高さを測定しますか?

  11. 11

    Python Tkinterは、名前の前にHiを付けて名前を表示します

  12. 12

    Python-tkinterのIntVar / entryは0のみを返します

  13. 13

    Python tkinter treeview get / 選択したアイテムの親名を返す

  14. 14

    Python Tkinterはaskopenfilenames()の結果を取得します

  15. 15

    Pythonは現在のtkinterテキストを変更します

  16. 16

    Python tkinter画像ラベルは、一部の画像をランダムに表示しますが、他の画像は表示しません

  17. 17

    Python / Tkinter-テキストボックスの背景を画像にしますか?

  18. 18

    TkinterとPythonのリスト

  19. 19

    [Python] [Tkinter]フラグを追加して、ラベルの前景をループで赤に変えますか?

  20. 20

    Python-tkinterコンボボックスは値を保存します

  21. 21

    Tkinter-2Dの色の配列を画像として表示する方法は?

  22. 22

    Python Tkinter-root.destroy()の後のエントリから値を取得します

  23. 23

    Python3でtkinterを使用して画像を開く

  24. 24

    Python3.6でImageTkとTkinterを使用してAttributeErrorを修正する方法は?

  25. 25

    Pythonのtkinterメニューから戻り値を取得します

  26. 26

    Python / Tkinter-「。」を変更します。を通って "、"

  27. 27

    python tkinter 画像ボタンの使い方は?

  28. 28

    マウスの位置Python Tkinter

  29. 29

    tkinterエントリ値を取得しようとするとPythonがエラーを出している

ホットタグ

アーカイブ