fertige Projekte

Ein einfaches Suchen & Ersetzen:

#!/usr/bin/env python3
from tkinter import *
import tkinter as tk 

root = Tk()
root.geometry("500x600")
root.title("Find and Replace")

def find_replace():
    eingabe = eingabefeld.get("1.0", tk.END)
    suchen = zu_suchen.get()
    ersetzen = zu_ersetzen.get()
    
    if suchen and ersetzen:
        abschluss = eingabe.replace(suchen, ersetzen)
        ausgabefeld.delete("1.0", tk.END)
        ausgabefeld.insert(tk.END, abschluss)
    else:
        ausgabefeld.delete("1.0", tk.END)
        ausgabefeld.insert(tk.END, "Bitte geben Sie sowohl den zu suchenden als auch den zu ersetzenden Text ein.")

def create_popup_menu(widget):
    menu = tk.Menu(widget, tearoff=0)
    menu.add_command(label="Ausschneiden", command=lambda: widget.event_generate("<<Cut>>"))
    menu.add_command(label="Kopieren", command=lambda: widget.event_generate("<<Copy>>"))
    menu.add_command(label="Einfügen", command=lambda: widget.event_generate("<<Paste>>"))
    return menu

def show_popup_menu(event):
    widget = event.widget
    menu = create_popup_menu(widget)
    menu.tk_popup(event.x_root, event.y_root)

def eingaben_loeschen():
   eingabefeld.delete("1.0",tk.END)  
   ausgabefeld.delete("1.0",tk.END)

# GUI
# Erstellen Sie die Scrollbar vor den Text-Widgets
scrollbar = Scrollbar(root)
scrollbar.pack(side=RIGHT, fill=Y)

eingabefeld = tk.Text(master=root, width=60, height=10, wrap='word', yscrollcommand=scrollbar.set)
eingabefeld.bind("<Button-3>", show_popup_menu)
eingabefeld.pack(pady=10)

zu_suchen = tk.Entry(master=root, width=40)
zu_suchen.pack(pady=5)
zu_suchen.insert(0, "Zu suchender Text")
zu_suchen.bind("<Button-3>", show_popup_menu)

zu_ersetzen = tk.Entry(master=root, width=40)
zu_ersetzen.pack(pady=5)
zu_ersetzen.insert(0, "Zu ersetzender Text")
zu_ersetzen.bind("<Button-3>", show_popup_menu)

ausgabefeld = tk.Text(master=root, width=60, height=10, yscrollcommand=scrollbar.set)
ausgabefeld.pack(pady=10)
ausgabefeld.bind("<Button-3>", show_popup_menu)

button = Button(text="Find - Replace ausführen", command=find_replace)
button.pack(pady=10)

button1 =Button(text="Eingaben löschen", command=eingaben_loeschen)
button1.pack()

# Konfigurieren Sie die Scrollbar, um beide Text-Widgets zu scrollen
scrollbar.config(command=lambda *args: (eingabefeld.yview(*args), ausgabefeld.yview(*args)))

root.mainloop()
from tkinter import *
import tkinter as tk
import pickle
import re
import tkinter.messagebox

# Globale Variable für das Dictionary
russisch_dict = {}

def load_dictionary():
    global russisch_dict
    try:
        with open('russisch-dict.pkl', 'rb') as f:
            russisch_dict = pickle.load(f)
    except FileNotFoundError:
        russisch_dict = {
            "сбн.": "fM",
            "уб": "Abn",
            "пр.": "Zun"
        }
        save_dictionary()
    except Exception as e:
        tkinter.messagebox.showerror(title="Fehler", message=f"Fehler beim Laden: {str(e)}")

def save_dictionary():
    with open('russisch-dict.pkl', 'wb') as f:
        pickle.dump(russisch_dict, f)

def hinzufuegen():
    global russisch_dict
    russisch = eingabefeld_russisch.get("1.0", END).strip()
    deutsch = eingabefeld_deutsch.get("1.0", END).strip()

    if russisch and deutsch:
        russisch_dict[russisch] = deutsch
        save_dictionary()
        print(f"Eintrag hinzugefügt: {russisch} -> {deutsch}")
        tkinter.messagebox.showinfo(title="Eintrag ok", message="Eintrag erfolgreich hinzugefügt")
        print("Aktuelles Dictionary:", russisch_dict)
        eingabefeld_russisch.delete("1.0", END)
        eingabefeld_deutsch.delete("1.0", END)
    else:
        print("Bitte beide Felder ausfüllen!")

def uebersetzen():
    eingabe_text = eingabefeld.get("1.0", END).strip()
    zeilen = eingabe_text.split('\n')
    
    uebersetzt = []

    for zeile in zeilen:
        elemente = re.findall(r'\d+pb-?|\d+aum|an\.mág\.de|\w+\.?|\([^)]*\)|:', zeile)
        
        uebersetzt_zeile = []
        for element in elemente:
            if element.isdigit() or element == ':' or element.startswith('('):
                uebersetzt_zeile.append(element)
            else:
                uebersetztes_element = element
                for key, value in russisch_dict.items():
                    uebersetztes_element = uebersetztes_element.replace(key, value)
                uebersetzt_zeile.append(uebersetztes_element)
        
        uebersetzt.append(' '.join(uebersetzt_zeile))
    
    ergebnis = '\n'.join(uebersetzt)
    ausgabefeld.delete("1.0", END)
    ausgabefeld.insert(END, ergebnis)

def felder_loeschen():
    eingabefeld.delete("1.0", END)
    ausgabefeld.delete("1.0", END)

def kopieren():
    root.clipboard_clear()
    root.clipboard_append(ausgabefeld.get("1.0", END))

def show_dictionary():
    try:
        popup = tk.Toplevel()
        popup.title("Dictionary Inhalt")
        
        text_widget = tk.Text(popup, wrap=tk.WORD, width=40, height=20)
        text_widget.pack(padx=10, pady=10)
        
        for key, value in russisch_dict.items():
            text_widget.insert(tk.END, f"{key}: {value}\n")
        
        text_widget.config(state=tk.DISABLED)
        
    except Exception as e:
        messagebox.showerror("Fehler", f"Fehler beim Anzeigen des Dictionaries: {str(e)}")

# Laden Sie das Dictionary beim Programmstart
load_dictionary()

# GUI erstellen
root = Tk()
root.title("Häkelanleitung Übersetzer")
root.geometry("500x1000")

eingabefeld = Text(root, height=20, width=50)
eingabefeld.pack(pady=10)

top_frame = Frame(root)
top_frame.pack(pady=5)

bestaetigung = Button(top_frame, text="Auf deutsch übersetzen", command=uebersetzen)
bestaetigung.pack(side=LEFT, padx=5)

kopieren_button = Button(top_frame, text="Übersetzung kopieren", command=kopieren)
kopieren_button.pack(side=LEFT, padx=5)

loeschen_button = Button(top_frame, text="Eingaben löschen", command=felder_loeschen)
loeschen_button.pack(side=LEFT, padx=5)

abbrechen_button = Button(root, text="Abbrechen", command=root.destroy)
abbrechen_button.pack(pady=5)

ausgabefeld = Text(root, height=20, width=50)
ausgabefeld.pack(pady=10)

Label(root, text="russischer Begriff:").pack(pady=5)
eingabefeld_russisch = Text(root, height=2, width=30)
eingabefeld_russisch.pack(pady=10)

Label(root, text="Deutsche Übersetzung:").pack(pady=5)
eingabefeld_deutsch = Text(root, height=2, width=30)
eingabefeld_deutsch.pack(pady=10)

Button(root, text="Hinzufügen", command=hinzufuegen).pack(pady=10)

show_dict_button = Button(root, text="Dictionary anzeigen", command=show_dictionary)
show_dict_button.pack(pady=5)

root.mainloop()
fm=1
runde=3
gesamt=18
print ("Runde 1: 6 fM in den Maschenring")
print ("Runde 2: jede Masche verdoppeln")
for i in range (1,50,1):
	print ("Runde ",runde,":(",fm,"fM,Zun)*6 =",gesamt)
	runde=runde+1
	fm=fm+1
	gesamt=runde*6

print ("Bitte eine Zahl größer 5 und kleiner 15 eingeben")
zahl=int(input())
if zahl < 5:
    print ("Die Zahl ist nicht größer als 5")
if zahl > 15:
    print ("Die Zahl ist größer als 15")    
else:
    print ("Die Zahl ist korrekt")    
from tkinter import *
import tkinter as tk 

# Fenster erstellen
root = Tk()
root.title("Reihen- / Rundenzähler")
root.geometry('250x300')

# Funktion zum Erhöhen des Zählers
def increment():
    current = int(count.get())
    current += 1
    count.set(current)
    label.config(text=f"Aktuelle Reihe/Runde: {current}")

# Label für die Eingabeaufforderung
label1 = tk.Label(root, text="Zählerwert, mit dem begonnen werden soll:")
label1.pack(pady=10)

# Eingabefeld für den Startwert
count = tk.StringVar(value="0")
entry = tk.Entry(root, textvariable=count)
entry.pack()

# Button erstellen
zaehler = tk.Button(root, text="+ 1 Reihe / Runde", command=increment)
zaehler.pack(pady=20)

# Label zur Anzeige des aktuellen Zählerstands
label = tk.Label(root, font=20, text="Aktuelle Reihe/Runde: 0")
label.pack()

root.mainloop()