ich habe mich mit Python3 und Tkinter ganz gut in die GUI Programmierung eingearbeitet. Es gibt im Netz ja auch ganz gute Tutorials und die dazugehörige Api. Ich habe mich an einen Texteditor gewagt und das hat auch wirklich gut funktioniert. Allerdings bekomme ich es nicht hin, dem Textwidget eine vertikale Scrollbar zu verpassen, obwohl ich mir einige Beispiele angesehen und auch danach recherchiert habe. Eine horizontale Scrollbar ist meineserachtens nicht nötig, da ich wordwrap einsetze. Nun seid Ihr meine letzte Hoffnung, vielleicht gibt es ja den einen oder anderen unter Euch, der Erfahrungen mit Python und Tkinter hat und mir deshalb helfen kann. Ich stell den Sourcecode hier mal Online:
Code: Alles auswählen
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat Jul 3 10:48:09 2021
@author: ralph
"""
import tkinter as tk
from tkinter.filedialog import askopenfilename, asksaveasfilename
def open_file():
"""Datei öffnen."""
filepath = askopenfilename(
filetypes=[("Text Dateien", "*.txt"), ("Alle Dateien", "*.*")]
)
if not filepath:
return
txt_edit.delete(1.0, tk.END)
with open(filepath, "r") as input_file:
text = input_file.read()
txt_edit.insert(tk.END, text)
txt_edit.focus_set()
app.title(f"Text Editor Application - {filepath}")
def save_file():
"""Datei speichern."""
filepath = asksaveasfilename(
defaultextension=".txt",
filetypes=[("Text Dateien", "*.txt"), ("Alle Dateien", "*.*")],
)
if not filepath:
return
with open(filepath, "w") as output_file:
text = txt_edit.get(1.0, tk.END)
output_file.write(text)
app.title(f"Text Editor Application - {filepath}")
app = tk.Tk()
app.geometry('600x400')
app.title("TK - Editor")
menubar = tk.Menu(app)
filemenu = tk.Menu(menubar,tearoff=0)
filemenu.add_command(label="Öffnen...", command=open_file)
filemenu.add_command(label="Speichern", command=save_file)
filemenu.add_command(label="Beenden", command=app.destroy)
menubar.add_cascade(label="Datei", menu=filemenu)
app.config(menu=menubar)
txt_edit = tk.Text(app)
txt_edit.focus_set()
txt_edit.configure(background="white")
txt_edit.pack(fill='both', expand=1)
app.mainloop()
Gruß ralli