Das ist jetzt dumm, ich habe Windows und Linux, aber keinen Mac. Unter Linux, hatte ich Farben für commands im Menü verwendet. Windows stellt aber die Farben nicht dar. Aber dass der Mac dann nicht einmal ein Menü anzeigt?
Das wäre weiter zu untersuchen, was der Mac mit dem Menü macht. Vielleicht sollte ich das mal exportieren, damit Du das weiter untersuchen kannst. In Untermenüs habe ich jetzt allerdings Images drin. Aber das sollte doch nichts ausmachen, oder?
Wenn Du den neuesten GuiDesigner hast und dann dieses Script in das Verzeichnis legst, in dem auch main.py ist - wegen Pfaden für die images. Vielleicht kannst Du herausbekommen, was mit diesem Menü auf dem Mac los ist?
Code: Alles auswählen
# -*- coding: utf-8 -*-
try:
import tkinter as tk
except ImportError:
import Tkinter as tk
class Application(tk.Tk):
def __init__(self,**kwargs):
tk.Tk.__init__(self,**kwargs)
# widget definitions ===================================
self.menu = Menu_1(self)
self['menu'] = self.menu
class Menu_1(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
# widget definitions ===================================
self.Menu = Menu_2(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.Menu,label='File', underline=0)
self.Menu_1 = Menu1(self,tearoff=0, bg='white', fg='black', selectcolor='blue', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.Menu_1,label='Special', underline=0)
self.menu = Menu_3(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.menu,label='Help')
self.add_command(label='Create ON', underline=0, background='lightgreen')
self.add_command(label=' ', state='disabled')
self.add_command(label='Config ON', underline=1, background='lightgreen')
self.add_command(label=' ', state='disabled')
self.add_command(label='Layout ON', underline=0, background='lightgreen')
self.add_command(label=' ', state='disabled')
self.add_command(label='Mouse ON', underline=0, background='lightgreen')
self.add_command(label='Hide', underline=0)
class Menu_2(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.backup_img = tk.PhotoImage(file = 'guidesigner/images/filesave.gif')
self.add_command(compound='left', image=self.backup_img, label='Backup', underline=0)
self.Save_img = tk.PhotoImage(file = 'guidesigner/images/geany-save-all.gif')
self.add_command(compound='left', image=self.Save_img, label='Save', underline=0)
self.Load_Edit_img = tk.PhotoImage(file = 'guidesigner/images/gtk-open.gif')
self.add_command(compound='left', image=self.Load_Edit_img, label='Load & Edit', underline=0)
self.add_command(label='Load & Run')
self.Menu = Menu_4(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.Menu,label='Split & Join')
self.add_separator()
self.Export_img = tk.PhotoImage(file = 'guidesigner/images/document-save-as.gif')
self.Menu_1 = Menu1_1(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.Menu_1,compound='left', image=self.Export_img, label='Export tkinter', underline=0)
self.Menu_2 = Menu2(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.Menu_2,label='Save Access')
self.add_separator()
self.Quit_img = tk.PhotoImage(file = 'guidesigner/images/application-exit.gif')
self.add_command(compound='left', image=self.Quit_img, label='Quit')
class Menu_4(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.add_command(label='Help')
self.add_separator()
self.add_command(label='Save (part)')
self.add_command(label='Save (config - part)')
self.add_command(label='Load & Edit (part)')
self.add_command(label='Load & Run (part)')
class Menu1_1(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.add_command(label='Help')
self.add_separator()
self.add_command(label='tkinter', underline=0)
self.add_command(label='tkinter (names)', underline=9)
self.add_command(label='tkinter (Designer)', underline=9)
class Menu2(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.add_command(label='Widget Depth')
self.add_command(label='Container Depth')
class Menu1(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='blue', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.Refresh_img = tk.PhotoImage(file = 'guidesigner/images/view-restore.gif')
self.add_command(compound='left', image=self.Refresh_img, label='GuiDesigner Refresh', underline=0)
self.GUI_Refresh_img = tk.PhotoImage(file = 'guidesigner/images/fullscreen.gif')
self.add_command(compound='left', image=self.GUI_Refresh_img, label='GUI Refresh', underline=4)
self.Toproot_img = tk.PhotoImage(file = 'guidesigner/images/top.gif')
self.add_command(compound='left', image=self.Toproot_img, label='Toproot')
self.add_separator()
self.add_command(activebackground='white', label='Navigation Order', state='disabled')
self.alphabetical_img = tk.PhotoImage(file = 'guidesigner/images/tools-check-spelling.gif')
self.add_radiobutton(value='alphabetical', compound='left', label='alphabetical', image=self.alphabetical_img, underline=0)
self.z_order_img = tk.PhotoImage(file = 'guidesigner/images/sort-ascending.gif')
self.add_radiobutton(value='basement', compound='left', label='z-order', image=self.z_order_img, underline=0)
self.i_order_img = tk.PhotoImage(file = 'guidesigner/images/index.gif')
self.add_radiobutton(value='index', compound='left', label='pack index', image=self.i_order_img, underline=0)
self.add_separator()
self.ExpertOptions_img = tk.PhotoImage(file = 'guidesigner/images/meeting-chair.gif')
self.Menu = Menu_5(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.Menu,compound='left', image=self.ExpertOptions_img, label='Expert Options')
class Menu_5(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.add_command(label='Help')
self.add_separator()
self.add_command(label='Code')
class Menu_3(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.add_command(label='Introduction')
self.add_command(label='Config Options')
self.add_command(label='Tuple Entries')
self.add_command(label='Menu Entries')
self.add_command(label='Backup')
self.add_command(label='Save & Load')
self.add_command(label='Export tkinter')
self.add_command(label='Save Access')
self.add_separator()
self.menu = Menu_6(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.menu,label='Programming')
self.menu_1 = Menu1_2(self,tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
self.add_cascade(menu=self.menu_1,label='Code in Scripts')
self.add_command(label='Examples')
class Menu_6(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.add_command(label='Load Scripts')
self.add_command(label='Access Widgets')
self.add_command(label='Access Toplevel')
class Menu1_2(tk.Menu):
def __init__(self,master,**kwargs):
tk.Menu.__init__(self,master,**kwargs)
self.config(tearoff=0, bg='white', fg='black', selectcolor='black', relief='solid', activebackground='#7bfeff', activeforeground='black', disabledforeground='grey64')
# widget definitions ===================================
self.add_command(label='Functions')
self.add_command(label='Namespace')
self.add_command(label='Imports')
self.add_command(label='DynTkImports')
self.add_command(label='Relative Access')
self.add_command(label='Root Access')
self.add_command(label='Place for Code')
self.add_command(label='DynAccess')
if __name__ == '__main__':
Application().mainloop()