Seite 1 von 1

Farbige Icons in der Menüleiste

Verfasst: Freitag 12. Oktober 2012, 09:25
von MikeR
Hallo,

ist es möglich unter Linux farbige Icons in die Menüleiste zu bringen?
Bisher konnte ich nur .xbm Icons einbinden.

Wenn ja, wie mache ich das?

LG Mike

Re: Farbige Icons in der Menüleiste

Verfasst: Freitag 12. Oktober 2012, 11:19
von wuf
Hi MikeR

Sollte mit Option 'compound' möglich sein:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

from functools import partial
import Tkinter as tk

def menu_callback(text):
    print text

def main():    
    app_win = tk.Tk()
    ICON_PYTHON_01_16 = tk.PhotoImage(data=\
    '''
    R0lGODlhEAAQAIQcAEdlfkVpiENymD54p0WCtH6a
    sKurq7Ozs6fA1by8vMTExP/IN87Ozv/RP//XSP/i
    Vt7e3v/ieN/i5P/sYuXl5f/nm+zs7P/wsO/x8vb2
    9v/54/7+/v///////////////yH+FUNyZWF0ZWQg
    d2l0aCBUaGUgR0lNUAAh+QQBCgAfACwAAAAAEAAQ
    AAAFmGAiJkqpMOinqglDZVscMxuzfgkEQ5QlyRvL
    6kTZ9GIIwkCA2KgUkBgsRpAIAgHnB1WMAhEBQGyr
    22SSyytA/LgQqYNlGFDQOBzQDCxewMg0EQ0LLRR+
    BAIYFRMTDw6Cgzp+CAIbi42PFQcMEhYWMowXQB8H
    EBgUPUWMDhoLWgcKBwcGmhkXDw0NFa4HN7JFUiu8
    NyqxmjchADs=
    '''
    )

    menubar = tk.Menu(app_win,
        bd = 1,
        activeborderwidth = 1,
        activebackground  = 'yellow',
        cursor = 'hand1',
        )
        
    filemenu = tk.Menu(menubar,
        bd      = 1,
        tearoff = 0,
        activeborderwidth = 0,
        activebackground  = 'green',
        )

    filemenu.add_command(
        label   = "Öffnen",
        compound = 'left',
        image = ICON_PYTHON_01_16,    
        command = partial(menu_callback, "Es wurde Öffnen gewählt!"),
        accelerator = 'Ctrl-A'
        )

    filemenu.add_command(
        label   = "Speichern",
        compound = 'left',
        image = ICON_PYTHON_01_16,
        command = partial(menu_callback, "Es wurde Speichern gewählt!"),
        accelerator = '      Ctrl-B ',
        )
        
    filemenu.add_separator()

    filemenu.add_command(
        label   = "Exit",
        compound = 'left',
        image = ICON_PYTHON_01_16,
        command = app_win.quit,
        accelerator = 'Ctrl-Q'
        )

    menubar.add_cascade(
        label="File",
        compound = 'left',
        image = ICON_PYTHON_01_16, 
        menu=filemenu,
        )

    app_win.config(menu=menubar)

    app_win.mainloop()

if __name__ == '__main__':
    main()
Gruß wuf :wink:

Re: Farbige Icons in der Menüleiste

Verfasst: Freitag 12. Oktober 2012, 11:53
von MikeR
Ja super, vielen Dank.

kannst du mir noch verraten wie ich die Icons in die Datenzeilen konvertieren kann?

LG Mike

Re: Farbige Icons in der Menüleiste

Verfasst: Freitag 12. Oktober 2012, 12:50
von BlackJack
@MikeR: Das ist der Inhalt einer GIF-Datei als Base64 kodiert.

Re: Farbige Icons in der Menüleiste

Verfasst: Freitag 12. Oktober 2012, 13:46
von wuf
Hi MikeR

Wie BlackJack erwähnte muss das Icon eine Bilddatei mit der Endung '.gif' sein. Wenn du die Bilddatei in deinem Arbeitsverzeichnis abgelegt hast kannst du sie wie folgt einlesen:

Code: Alles auswählen

DEIN_ICON = tk.PhotoImage(file='DeinBildchen.gif')
Gruß wuf :wink:

Re: Farbige Icons in der Menüleiste

Verfasst: Freitag 12. Oktober 2012, 14:32
von MikeR
Achso. Ich dachte das ginge nur auf dem Weg das Bild codiert in den Quelltext zu schreiben.
Jedenfalls bin ich euch wirklich dankbar, denn auf der Suche danach hab ich schon einige Stunden
investiert.

LG Mike