Tkinter Menu mit Icons

Fragen zu Tkinter.
Antworten
thaloss
User
Beiträge: 15
Registriert: Mittwoch 26. März 2014, 13:59

Hallo,

ich versuche mit Python 3.4.2 und tkinter unter Win7764 ein Menu mit Icons zu erstellen. Über das Icon will ich einen einem weiteren Schritt einen Status anzeigen lassen, ich muß das Icon also wechseln können. Leider schaffe ich es noch nicht mal das ein statisches Icon angezeigt wird - statt des icons bekomme ich "(image)" im Menu angezeigt.
Verwende ich das Icon hingegen für einen normalen Button so wird das Image angezeigt. Meine erste Vermutung war ein Größenproblem aber weder mit einem 16x16 noch mit einem 8x8 Gif läuft es.
Was mache ich falsch ?
Hier mein Testcode:

Code: Alles auswählen

import tkinter as tk
from tkinter import ttk

def test():
    print('OK') 
    return
    
root = tk.Tk()
myimage_16 = tk.PhotoImage(file= "connect_16.gif")      #   Gif mit 16x16
myimage_8 = tk.PhotoImage(file= "connect_8.gif")        #   Gif mit 8x8
menuBar = tk.Menu(root)
root['menu'] = menuBar
menuBar.add_command(label='Test 1', image=myimage_16, command=test)             #   zeigt: (image)
menuBar.add_command(label='Test 2', image=myimage_8, command=test)              #   zeigt: (image)
ttk.Button(root, text='Icon test', image=myimage_16, command=test).pack()       #   zeigt das Icon korrekt
tk.mainloop()
Vielen Dank

Thaloss
"In jedem kleinen Problem steckt ein großes das gerne raus will"
BlackJack

@thaloss: Wenn beides angezeigt werden soll, Text *und* Icon, dann fehlt auf jeden Fall die `compound`-Option.

Code: Alles auswählen

    menu.add_command(label='Text', image=image, compound=tk.LEFT)
thaloss
User
Beiträge: 15
Registriert: Mittwoch 26. März 2014, 13:59

Hallo BlackJack,

Danke, hat aber auch nicht geholfen, ich bekomme immer nur den Text (image) inklusive der runden Klammern angezeigt.
Auch das compound=tk.LEFT ändert daran nichts. Es wird auch nicht "Test 1" oder "Test 2" angezeigt.
:(

Thaloss
"In jedem kleinen Problem steckt ein großes das gerne raus will"
Antworten