Menübreite anpassen

Fragen zu Tkinter.
BlackJack

@kodela: Du hast die anderen Funktionen zu Methoden gemacht und das geht mit der `key()`-Funktion ganz genau so. Wenn Du das nicht hinbekommst, dann hättest Du das mit den anderen Funktionen auch nicht gekonnt, oder eben nur durch blindes rumprobieren ohne dabei etwas zu lernen. Und dann weiss ich nicht was es bringen soll wenn man Dir jetzt die `key()`-Funktion als Methode zeigt, denn wenn Du das vorher schon nicht mit vergleich Funktion/Methode verstanden hast bei denen die Du schon umgewandelt hast, dann wird hier jetzt höchstens zufällig der Groschen fallen, denn es unterscheidet sich vom vorgehen ja nicht von denen die Du schon zu Methoden gemacht hast. *Wie* hast Du das denn gemacht? Nach welchem systematischen vorgehen? Was hast Du dabei gelernt?
kodela
User
Beiträge: 185
Registriert: Montag 12. Oktober 2015, 21:24
Wohnort: Landsberg am Lech
Kontaktdaten:

Halle @BlackJack:

Wie ich Dir an anderer Stelle bereits mitgeteilt habe, kann ich mich die nächsten Tage nicht mit dem Problem beschäftigen. Ich melde mich aber auf jeden Fall wieder.

MfG, kodela
kodela
User
Beiträge: 185
Registriert: Montag 12. Oktober 2015, 21:24
Wohnort: Landsberg am Lech
Kontaktdaten:

Hallo @BlackJack:

wie ich glaube, habe ich die wichtigsten Änderungsvorschläge von Dir auf die Reihe gebracht. Der Code sieht nun so aus:

Code: Alles auswählen

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

import Tkinter as tk
import webbrowser


class GUI_Interface(object):

    def oeffnen(self):
        self.eingabe.delete(0, tk.END)
        self.eingabe.insert(0,'Es soll geöffnet werden.')

    def speichern(self):
        self.eingabe.delete(0, tk.END)
        self.eingabe.insert(-1, 'Es soll gespeichert werden.')

    def speichern_unter(self):
        self.eingabe.delete(0, tk.END)
        self.eingabe.insert(-1, 'Es soll unter neuem Namen gespeichert werden.')

    def hallo(self):
        self.eingabe.delete(0, tk.END)
        self.eingabe.insert(-1, 'Hallo!')

    def klick(self):
        self.eingabe.delete(0, tk.END)
        self.eingabe.insert(-1, 'Das war ein Klick!')

    def webpage(self):
        self.eingabe.delete(0, tk.END)
        self.eingabe.insert(-1, 'Python-Forum öffnen')
        webbrowser.open("http://www.python-forum.de")

    def clear_text(self):
        self.eingabe.delete(0,tk.END)

    def key(self, event):
        # Umschalttasten (Groß/Klein-Ziffernblock) ausmaskieren
        _state = event.state & 5
        # nur Strg + Zeichentaste
        if _state == 4:
            if event.keysym.upper() == 'O':
                self.oeffnen()
            elif event.keysym.upper() == 'S':
                self.speichern()
            elif event.keysym.upper() == 'Q':
                self.root.destroy()
        # Strg + Shift + Zeichentaste
        elif _state == 5:
            if event.keysym.upper() == 'S':
                self.speichern_unter()

    def __init__(self, tk):
        
        self.root = tk.Tk()
        self.root.title('Erstes Fenster')
        self.root.geometry('300x130')    
    
        menu = tk.Menu(self.root)
        filemenu = tk.Menu(menu, tearoff=0)
        filemenu.add_command(label='Öffnen . . .',
                accelerator='Strg+O', command=self.oeffnen)
        filemenu.add_command(label='Speichern . . .',
                accelerator='Strg+S', command=self.speichern)
        filemenu.add_command(label='Speichern unter . . .\t\t\t',
                accelerator='Strg+Shift+S', command=self.speichern_unter)
        filemenu.add_separator()
        filemenu.add_command(label='Beenden',
                accelerator='Strg+Q', command=self.root.quit)
        menu.add_cascade(label='Datei', menu=filemenu)

        editmenu = tk.Menu(menu, tearoff=0)
        editmenu.add_command(label='Forum öffnen', command=self.webpage)
        editmenu.add_command(label='Pause', command=self.hallo)
        editmenu.add_command(label='Einfügen', command=self.klick)
        menu.add_cascade(label='Bearbeiten', menu=editmenu)

        helpmenu = tk.Menu(menu, tearoff=0)
        helpmenu.add_command(label='Über', command=self.hallo)
        menu.add_cascade(label='Hilfe', menu=helpmenu)

        self.root.config(menu=menu)
        self.panel = tk.Frame(self.root)
        self.eingabe = tk.Entry(self.panel)
        self.eingabe.insert(0,'Hallo Welt!')
        self.eingabe.pack(fill=tk.X, padx=15, pady=20)            
        self.b_clear = tk.Button(self.panel, text="Löschen", 
                width=12, height=1, command=self.clear_text)
        self.b_clear.pack(side="left", padx=20, pady=10)
        self.b_quit = tk.Button(self.panel, text="Beenden",
                width=12, height=1, command=self.root.quit)
        self.b_quit.pack(side="right", padx=20, pady=10)
        self.panel.pack(fill=tk.X)
        self.root.bind('<Key>', self.key)
        

def main():   
    
    app = GUI_Interface(tk)
    app.root.mainloop()


if __name__ == '__main__':
    main()
Was wäre noch wichtig?

MfG, kodela
Antworten