Dankeschön der Code hat mir jetzt wirklich weitergeholfen. Ist echtnett von dir das du dir soviel Zeit genommen hast!
Gruß Hanman
Vorgabe bei raw_input
'Ich liebe es wenn ein Plan funktioniert'
So jetzt stellt sich mir ein neues Problem :
Ich möchte den Inhalt eines ganzen Textfensters in einer Datei speichern. Dazu habe ich folgenen Code geschrieben :
In der Datei news.txt werden aber nur 2 Breaks gepsiechert. Woran kann das líegen? Kann ich sowas vielleicht nur mit savefile() machen?
Gruß Hanman[/code]
Ich möchte den Inhalt eines ganzen Textfensters in einer Datei speichern. Dazu habe ich folgenen Code geschrieben :
Code: Alles auswählen
# -*- coding: cp1252 -*-
from Tkinter import *
def newseingabe():
nspeichern = Button(root, text="News speichern")
nspeichern.pack(side=TOP)
nspeichern.bind("<Button-1>", newsschreiben())
font = ("Arial",10,"bold") #Fon #Varialen
frame = Frame(root) #Rahmen für eingabe
frame.pack()
lbleingabe = Label(frame) #Label der Eingabe
lbleingabe.pack(side='left')
feld =Text(root,width=200, height=180,bg="white") #Eingabefeld
feld.pack(side="left")
ausgabe = feld.get(1.0,END)
oeffnen = open("news.txt", "w")
oeffnen.write(feld.get(1.0,END))
oeffnen.close()
def newsschreiben() :
print 'blah'
#ausgabe = feld.get(1.0,END)
#oeffnen = open("news.txt", "
#oeffnen.write(feld.get(1.0,END))
#oeffnen.close()
#Programmstart
root = Tk() #Hauptfenster
eingabe = StringVar()
root.title("CMS")
xpos = 10
ypos = 10
width = 600
height = 600
root.wm_geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))
menubar = Menu(root) #Menu
newsmenu=Menu(menubar)
newsmenu.add_command(label="Hinzufuegen", command=newseingabe)
root.config(menu=newsmenu)
frame=Frame(root,width=600)
frame.pack()
root.mainloop() #LOOP
Gruß Hanman[/code]
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Das "feld" enthält zu dem Zeitpunkt, an dem du Specherst noch gar keine Eingaben.
Du musst den Aufbau der GUI und die Aktionen die dann ausgeführt werden trennen. Für die Aktionen definiertst Du Funktionen oder Methoden, die dann an die Buttons und Entrywidgets mit "bind()" gebunden werden. Sobald dann der Anwender einen Button drückt oder eine Eingabe im Entry macht wird die Funktion ausgeführt. Bei Tkinter sind schon ein paar schöne Beispiele dabei, schau dir einfach mal den Sourcecode an von den Teilen, die für dich interessant sind.
Gruß
Dookie
Du musst den Aufbau der GUI und die Aktionen die dann ausgeführt werden trennen. Für die Aktionen definiertst Du Funktionen oder Methoden, die dann an die Buttons und Entrywidgets mit "bind()" gebunden werden. Sobald dann der Anwender einen Button drückt oder eine Eingabe im Entry macht wird die Funktion ausgeführt. Bei Tkinter sind schon ein paar schöne Beispiele dabei, schau dir einfach mal den Sourcecode an von den Teilen, die für dich interessant sind.
Gruß
Dookie
Hallo Hanman
Hier ist dein leicht frisierter Code zum ausprobieren.
Jetzt sollte etwas in die Datei 'news.txt' geschrieben
werden, sofern Text ins Textfeld eingegeben wurde.
Wie du siehst braucht der Button nicht eine Bindung
<'Button-1'>, da der Button eine option 'command' besitzt
um bei seiner Aktivierung eine Funktion aufzurufen.
Das Objekt 'feld' für das Texteingabefeld muss mit der
Anweisung 'global' nach aussen bekannt gegeben werden,
da es in einer Funktion erzeugt wird. So hat auch die
Funktion 'newschreiben' Kenntnis über die Existenz des
Textfeldobjektes 'feld' die sie braucht um den Text aus
diesem Objekt zu lesen.
Gruss wuf
Hier ist dein leicht frisierter Code zum ausprobieren.
Jetzt sollte etwas in die Datei 'news.txt' geschrieben
werden, sofern Text ins Textfeld eingegeben wurde.
Wie du siehst braucht der Button nicht eine Bindung
<'Button-1'>, da der Button eine option 'command' besitzt
um bei seiner Aktivierung eine Funktion aufzurufen.
Das Objekt 'feld' für das Texteingabefeld muss mit der
Anweisung 'global' nach aussen bekannt gegeben werden,
da es in einer Funktion erzeugt wird. So hat auch die
Funktion 'newschreiben' Kenntnis über die Existenz des
Textfeldobjektes 'feld' die sie braucht um den Text aus
diesem Objekt zu lesen.
Code: Alles auswählen
# -*- coding: cp1252 -*-
from Tkinter import *
def newseingabe():
global feld
nspeichern = Button(root, text="News speichern",command=newsschreiben)
nspeichern.pack(side=TOP)
font = ("Arial",10,"bold") #Fon #Varialen
frame = Frame(root) #Rahmen für eingabe
frame.pack()
lbleingabe = Label(frame) #Label der Eingabe
lbleingabe.pack(side='left')
feld =Text(root,width=200, height=180,bg="white") #Eingabefeld
feld.pack(side="left")
feld.delete(0.0,END)
def newsschreiben() :
print 'Text wird in Datei geschrieben'
ausgabe = feld.get(1.0,END)
oeffnen = open("news.txt","w")
oeffnen.write(feld.get(1.0,END))
oeffnen.close()
# Programmstart
root = Tk() #Hauptfenster
eingabe = StringVar()
root.title("CMS")
xpos = 10
ypos = 10
width = 600
height = 600
root.wm_geometry("%dx%d+%d+%d" % (width,height,xpos,ypos))
menubar = Menu(root) #Menu
newsmenu=Menu(menubar)
newsmenu.add_command(label="Hinzufuegen", command=newseingabe)
root.config(menu=newsmenu)
frame=Frame(root,width=600)
frame.pack()
root.mainloop() #LOOP
Take it easy Mates!
Hallo,
ist wirklich nett von euch das ihr euch am Sonntag Abend soviel Zeit für mich nehmt! Danke. Besonders dein Code wuf hat mir weitergeholfen!
Ich hab jetzt das ganze nochmal geschrieben und alles beachtet was ihr beiden mir empfohlen habt :
Jetzt funktioniert zum Glück alles bestens. Ich werde jetzt erstmal die ganzen News durch XML gliedern, der Möglichkeiten XML mit Python zu verarbeiten sind ja großartig!
Gruß Hanman[/code]
ist wirklich nett von euch das ihr euch am Sonntag Abend soviel Zeit für mich nehmt! Danke. Besonders dein Code wuf hat mir weitergeholfen!
Ich hab jetzt das ganze nochmal geschrieben und alles beachtet was ihr beiden mir empfohlen habt :
Code: Alles auswählen
from Tkinter import *
from tkFileDialog import *
class CMS :
def __init__(self) :
#Fenster erstllen
self.root = Tk()
self.fenster = Frame
self.root.title("CMS")
self.xpos = 10
self.ypos = 10
self.width = 600
self.height = 600
self.root.wm_geometry("%dx%d+%d+%d" % (self.width,self.height,self.xpos,self.ypos))
#Menu erstellen
self.menubar = Menu(self.root)
self.menubar.add_command(label="eyy", command=self.textf)
self.newsmenu=Menu(self.menubar)
self.root.config(menu=self.menubar)
self.frame=Frame(self.root,width=600)
self.frame.pack()
self.root.mainloop()
def textf(self):
self.savebutt = Button(self.root, text="News speichern", command=self.savenews)
self.savebutt.pack(side="top")
self.frame = Frame(self.root)
self.txtlabel = Label(self.frame)
self.txtlabel.pack(side="left")
global feld
feld = Text(self.root, width=200, height=180,bg="white")
feld.pack(side="left")
feld.delete(0.0,END)
def savenews(self):
oeffnen = open("news.txt", "w")
holen = feld.get(1.0,END)
oeffnen.write(holen)
oeffnen.close()
CMS()
Gruß Hanman[/code]
'Ich liebe es wenn ein Plan funktioniert'