Hallo zusammen,
ich möchte eine grafische Oberfläche erstellen, die folgendes beinhalten soll:
- Terminalausgabe, evtl. auch zum Editieren von Daten
- Menüpunkte
- Buttons
Da Tkinter Standard bei Python ist, stellt sich für mich die Frage, ob ich obige Punkte damit umsetzen kann oder eine andere GUI dafür verwenden muß?
Für Inputś und Tipps von Euch, würde ich mich sehr freuen.
Grüße Nobuddy
Fensterprojekt mit Tkinter möglich?
@Nobuddy: Kennst Du IDLE? Die Python IDE die bei einer Vollinstallation von Python dabei ist? Die ist mit Tkinter realisiert. Und sollte alle Deine drei Punkte enthalten.
Wobei Terminalausgabe ein weit gefasster Begriff sein kann. Eine echte Terminalemulation ist etwas umfangreicher, aber vielleicht brauchst Du die auch gar nicht komplett‽
Wobei Terminalausgabe ein weit gefasster Begriff sein kann. Eine echte Terminalemulation ist etwas umfangreicher, aber vielleicht brauchst Du die auch gar nicht komplett‽
@BlackJack, IDLE ist mir schon ein Begriff, habe es bisher aber nicht genutzt.
Habe IDLE installiert und werde mich da mal einlesen, damit ich weiß was IDLE genau ist und wie ich es anwenden muß.
Mit Terminalausgabe, habe ich die Ausgabe die beim Ausführen von Python-Programmen, wie z.B. Print- und Fehlerausgaben ausgegeben werden gemeint.
Habe IDLE installiert und werde mich da mal einlesen, damit ich weiß was IDLE genau ist und wie ich es anwenden muß.
Mit Terminalausgabe, habe ich die Ausgabe die beim Ausführen von Python-Programmen, wie z.B. Print- und Fehlerausgaben ausgegeben werden gemeint.
@Nobuddy: Ja. Insbesondere was die Ausgabe/Eingabe angeht, denn es startet ja mit einem Fenster wo eine interaktive Python-Shell drin läuft.
Habe mal einen kleinen Anfang gemacht.
Das ist erst mal ein Beispiel, damit ich sehe was wie funktioniert.
Wie bekomme ich es hin, daß die Print-/ und Fehler-Ausgaben im gleichen Fenster ausgegeben werden?
Welche Schritte sind hier notwendig?
Code: Alles auswählen
#!/usr/bin/python3
from tkinter import Tk
from tkinter import Menu
from tkinter import Button
from tkinter import mainloop
import sys
# menu1
def data_complett_update():
import y0_data_complett_update
def data_base_edit():
import z5_listbase
# menu2
def data_backup():
import z7_backup
def data_restore():
print('Datenwiederherstellung')
root = Tk()
root.title('officeplanet')
root.geometry('800x600')
myMenu = Menu(root)
root.config(menu = myMenu)
menu1 = Menu(myMenu)
myMenu.add_cascade(label = 'EDV', menu = menu1)
menu1.add_command(label = 'Daten-Update', command = data_complett_update)
menu1.add_command(label = 'Edit Basis-Daten', command = data_base_edit)
menu2 = Menu(myMenu)
myMenu.add_cascade(label = 'Sicherheit', menu = menu2)
menu2.add_command(label = 'Backup', command = data_backup)
menu2.add_command(label = 'Restore', command = data_restore)
root.mainloop()

Wie bekomme ich es hin, daß die Print-/ und Fehler-Ausgaben im gleichen Fenster ausgegeben werden?
Welche Schritte sind hier notwendig?
Bin dabei mich in Tkinter einzuarbeiten, was durch mangelnde deutsche Referenzen, für mich das etwas erschwert.
Aber ich lasse mich dadurch nicht unterkriegen und kämpfe mich durch englischsprachige Referenzen durch.
Eine davon ist diese: http://infohost.nmt.edu/tcc/help/pubs/tkinter/
Solltet Ihr für mich noch weitere hilfreiche Links und Infos haben, würde ich mich darüber freuen!
Aber ich lasse mich dadurch nicht unterkriegen und kämpfe mich durch englischsprachige Referenzen durch.
Eine davon ist diese: http://infohost.nmt.edu/tcc/help/pubs/tkinter/
Solltet Ihr für mich noch weitere hilfreiche Links und Infos haben, würde ich mich darüber freuen!

Hallo zusammen,
ich habe angefangen, ein Konzept für mich zu entwickeln und würde von Euch gerne erfahren, was falsch bzw. anderst gemacht werden sollte.
Zuvor noch ein paar eigene Gedanken.
Ich möchte eine flexibles Fenster erstellen, das vom Layout her immer gleich ist.
Was sich aber verändern soll, sind die Buttons die verschiedene Aufgaben erfüllen sollen.
Bitte lasst Euch von den verschiedenen Farben nicht irritieren, die sind nur für mich, um die Layout-Ergebnisse besser erkennen zu können.
Hier mal mein Code:
ich habe angefangen, ein Konzept für mich zu entwickeln und würde von Euch gerne erfahren, was falsch bzw. anderst gemacht werden sollte.
Zuvor noch ein paar eigene Gedanken.
Ich möchte eine flexibles Fenster erstellen, das vom Layout her immer gleich ist.
Was sich aber verändern soll, sind die Buttons die verschiedene Aufgaben erfüllen sollen.
Bitte lasst Euch von den verschiedenen Farben nicht irritieren, die sind nur für mich, um die Layout-Ergebnisse besser erkennen zu können.
Hier mal mein Code:
Code: Alles auswählen
#!/usr/bin/python3
from tkinter import Tk
from tkinter import Frame
from tkinter import Label
from tkinter import Menu
from tkinter import Button
from tkinter import Text
from tkinter import Entry
from tkinter import mainloop
from tkinter.filedialog import askopenfilename
import sys
# menu_a
def menu_a1():
name = askopenfilename()
print(name)
return
def menu_a2():
pass
return
def menu_a3():
pass
return
# menu_b
def menu_b1():
import y0_data_complett_update
return
def menu_b2():
import z5_listbase
return
# menu_c
def menu_c1():
import z7_backup
return
def menu_c2():
print('Datenwiederherstellung')
return
def mainmenu(root):
# Hauptmenü oben
myMenu = Menu(root, background = 'yellow')
root.config(menu = myMenu)
menu_a = Menu(myMenu)
myMenu.add_cascade(label = 'Datei', menu = menu_a) # Hauptmenü
menu_a.add_command(label = 'Öffnen', command = menu_a1)
menu_a.add_command(label = 'Speichern', command = menu_a2)
menu_a.add_command(label = 'Einstellungen', command = menu_a3)
menu_b = Menu(myMenu)
myMenu.add_cascade(label = 'EDV', menu = menu_b) # Hauptmenü
menu_b.add_command(label = 'Daten-Update', command = menu_b1)
menu_b.add_command(label = 'Edit Basis-Daten', command = menu_b2)
menu_c = Menu(myMenu)
myMenu.add_cascade(label = 'Sicherheit', menu = menu_c) # Hauptmenü
menu_c.add_command(label = 'Backup', command = menu_c1)
menu_c.add_command(label = 'Restore', command = menu_c2)
def window_area_left(root):
lab0 = Label(root, width=15, background = 'yellow')
lab0.pack(side='left', expand='YES', fill='y')
def window_area_right(root):
lab1 = Label(root, width=15, background = 'yellow')
lab1.pack(side='right', expand='YES', fill='y')
def workspace(root):
lab2 = Label(root, width=200, background = 'red')
lab2.pack(anchor='n', expand='YES', fill='y')
def window_area_below(root):
lab3 = Label(root, width=200, background = 'green')
lab3.pack(anchor='s', fill='x')
# Text-Eingabe
eingabefenster = Entry(lab3, width = 80, background = 'black',
foreground = 'white', font = ('NimbusSansL',14))
eingabefenster.pack(anchor='n')
# Bereich-Buttons
lab4 = Label(lab3, heigh=5, width=100, background = 'blue')
lab4.pack(anchor='s')
def WindowBase():
root = Tk()
root.title('officeplanet')
root.geometry('1280x1024')
mainmenu(root) # Hauptmenü
window_area_left(root) # Bereich links
window_area_right(root) # Bereich rechts
workspace(root) # Bereich oben
window_area_below(root) # Bereich unten
root.mainloop()
WindowBase()