Seite 1 von 1

Menühintergrund

Verfasst: Dienstag 2. Januar 2007, 22:53
von Anfänger1911
Hi!

Ich hab mit Tkinter ein Menü erstellt ich möchte aber nicht die Standard-Hintergrundfarbe bzw. Textfarbe. Kann ich die Farben irgendwie ändern oder geht das nur mit wxPython?

MfG

Henne

Verfasst: Dienstag 2. Januar 2007, 23:01
von Mawilo
Hallo,

den Hindergrund kannst du mit

Code: Alles auswählen

menu.config(bg = 'farbe')
ändern. Für die Schriftfarbe geht das mit

Code: Alles auswählen

menu.config(fg = 'farbe')
Stephan

Verfasst: Dienstag 2. Januar 2007, 23:18
von Anfänger1911
So kann ich zwar die Hintergrund- und Schriftfarben der Pop-up Menüs(ich glaub das heißt so :oops: ) Aber nicht die Hintergrund- und Schriftfarben des Toplevel-Menüs(wenn das anders heißt verbessert mich, ich meine diese menüleiste am oberen fensterrand) verändern. Ich möchte aber auch die Farbe des Toplevel-Menüs ändern. Wie geht das?

Trotzdem schonma thx an Stephan!!!

MfG

Henne

Verfasst: Dienstag 2. Januar 2007, 23:51
von pyStyler
so geht das!

Code: Alles auswählen

root.config(background="orange")
root.option_add("*Background", "orange")

Verfasst: Mittwoch 3. Januar 2007, 12:40
von Anfänger1911
Also mein Programm sieht jetzt so aus:

Code: Alles auswählen

from Tkinter import *

class Test:
    def __init__ (self):
        self.fenster = Tk()
        self.fenster.geometry("530x480")
        self.fenster.config(bg='#FF9900')
        self.__addMenue()
        self.__addDateimenue()
        self.__addSmenue()
        self.__addInfomenue()
        self.fenster.mainloop()

    def __addMenue(self):
        self.menue=Menu(self.fenster)
        self.fenster.configure(menu=self.menue)
        self.menue.config(background="black") 
        self.menue.option_add("*Background", "black")

    def __addDateimenue(self):
        self.dateimenue=Menu(self.menue)
        self.dateimenue.config(bg='black', fg='yellow')
        self.dateimenue.add_command(label='Test starten', font='Arial',8,'bold'),)
        self.dateimenue.add_command(label='Anzeigen')
        self.dateimenue.add_command(label='Einstellungen')
        self.dateimenue.add_separator()
        self.dateimenue.add_command(label='Programm beenden')
        self.dateimenue.add_separator()
        self.menue.add_cascade(label='Datei', menu=self.dateimenue)

    def __addSmenue(self):
        self.smenue=Menu(self.menue)
        self.smenue.config(bg='black', fg='yellow')
        self.smenue.add_command(label='1')
        self.smenue.add_command(label='2')
        self.smenue.add_command(label='3')
        self.smenue.add_separator()
        self.menue.add_cascade(label='Schwierigkeitsstufe', menu=self.smenue)

    def __addInfomenue(self):
        self.infomenue= Menu(self.menue)
        self.infomenue.config(bg='black', fg='yellow')
        self.infomenue.add_command(label='Homepage')
        self.infomenue.add_command(label='Versionsinfo')
        self.infomenue.add_separator()
        self.menue.add_cascade(label='Info', menu=self.infomenue)
        
test=Test()
Aber irgendwie funktioniert das immer noch nich. Was hab ich falsch gemacht?

MfG

Henne

Verfasst: Mittwoch 3. Januar 2007, 13:12
von Mawilo
In Zeile 24 sind zwei Fehler. Die Zeile muss so aussehen:

Code: Alles auswählen

self.dateimenue.add_command(label='Test starten', font=('Arial',8,'bold'))
Dann lässt sich das Programm starten. Wobei ich aber schwarze Schrift auf schwarzen Hindergrund in einem Menü seltsam finde :wink:

Verfasst: Mittwoch 3. Januar 2007, 13:34
von Anfänger1911
Ja sry das war nur ein Fehler beim kopieren. In meinem Programm ist das mit den Klammern und dem Komma richtig. Das Problem liegt darin, dass meine Menüleiste immernoch nicht die richtige Hintergrundfarbe hat. Die Schriftfarbe habe ich nur noch nicht in orange geändert :wink: .

MfG

Henne

Verfasst: Mittwoch 3. Januar 2007, 13:47
von pyStyler
ich arbeite gerade daran habe ein wenig geduld bitte.

Verfasst: Mittwoch 3. Januar 2007, 14:09
von pyStyler
Hi,
also mit "Menubutton" würde es gehen. Hier mal ein beispiel.

Code: Alles auswählen

#! /usr/bin/python
from Tkinter import *
class Main(Frame):
	def __init__(self, master=None): # *args, **kwargs'
		Frame.__init__(self, master)
		self.pack(expand=YES, fill=BOTH)
			
		self.menubar = Frame(self, relief=RAISED, bd=2, bg='orange')
		self.menubar.pack(side=TOP, fill=X)
		self.menubar.option_add('*background', 'yellow')
		
		self._datei = self.makeDateiMenu()
		self._schwer = self.makeSchwerMenu()
		self._info = self.makeInfoMenu()
		self.menubar.tk_menuBar(self._datei, self._schwer, self._info)
		
		
	def makeDateiMenu(self):
		datei_button = Menubutton(self.menubar, text='Datei', bg='orange')
		datei_button.pack(side=LEFT, padx=1)
		
		datei_button.menu = Menu(datei_button)
		
		datei_button.menu.add_command(label='Test Starten')
		datei_button.menu.add_command(label='Anzeigen...')
		
		datei_button['menu'] = datei_button.menu
		return datei_button
		
	def makeSchwerMenu(self):
		msm_button = Menubutton(self.menubar, text='Schwierigkeitsstufe', bg='orange')
		msm_button.pack(side=LEFT, padx=1)
		
		msm_button.menu = Menu(msm_button)
		
		msm_button.menu.add_command(label='1', underline=0)
		msm_button['menu'] = msm_button.menu
		return msm_button
		
	def makeInfoMenu(self):
		info_button = Menubutton(self.menubar, text='info', bg='orange')
		info_button.pack(side=RIGHT)
		
		info_button.menu = Menu(info_button)
		
		info_button.menu.add_command(label='info', underline=0,)
		
		info_button['menu'] = info_button.menu
		return info_button

def _Main():
	root = Tk()
	root.option_add('*background', 'black')
	app = Main(root)
	app.pack(side=TOP, fill=BOTH, expand=YES)
	root.mainloop()
	
if __name__=='__main__':
	_Main()

Verfasst: Mittwoch 3. Januar 2007, 17:26
von Anfänger1911
Ich glaub dann is es doch besser wenn ich mir mal die wxPython Docs durchlese :wink: . Danke @ all!

MfG

Henne