>tkinter< problem...

Fragen zu Tkinter.
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Milan hat geschrieben: Alle drei sind auch im editor leicht zu bearbeiten, wobei ich allerdings CSV vorziehen würde Ist auch mit excel zu bearbeiten und macht nicht soviel zusätzlichen Speicherplatz weg wie XML...
Ich finde auch daß XML für eine so einfache Aufgabe etwas Overkill ist :wink:
Zum Thema Excel (Microsoft :shock: [mawe macht reflexartig eine Handbewegung um böse Geister abzuwehren]):
Wenn man in der Artikeldatei als Trennzeichen ein ";" verwendet und dann folgendes ändert:

Code: Alles auswählen

# einlesen
...
self.art = [x.split(';') for x in f.readlines()] 
...
# schreiben
...
f.write("%s;" % str(self.art[i][j]))
...
kann man meine Methode und Excel (:shock:) verwenden (hihi! 8))

Gruß, mawe
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

HI. Dann muss ich wieder einsprechen, das ist der Grund warum ich extra importiere. Es könnten Semikolon (bzw Kommata) in der Datei sein, die zu den Namen gehöhren und somit auseinander gerissen werden und andererseits trennst du jetzt den Zeilenumsprung beim letzten Listenmitglied nicht mehr ab :P :lol:
mawe hat geschrieben:Zum Thema Excel (Microsoft :shock: [mawe macht reflexartig eine Handbewegung um böse Geister abzuwehren])
Dann nimm halt ein Posix-Äquivalent, gibts ja genug von :D .
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Milan hat geschrieben: ... trennst du jetzt den Zeilenumsprung beim letzten Listenmitglied nicht mehr ab
:oops: Hast recht. Verd$#@!! :wink:
Milan hat geschrieben: Es könnten Semikolon (bzw Kommata) ...
Spaltet Excel auch bei ,, ich dachte es nimmt nur ;. Daß nämlich ein Semikolon in diesen Daten vorkommt ist unwahrscheinlich, finde ich. Aber Du hast schon recht, das ist alles etwas zu unsicher.

Gruß, mawe
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

Hi. Das mit den Kommaspalten... keine Ahnung. Zur Sicherheit kann man ja mal nen eigenen Dialekt definieren:

Code: Alles auswählen

class MyDialect(csv.excel):
    delimiter=";"
    lineterminator="\n"
Den muss man dann beim erzeugen von Reader/writer Objekten mit angeben:

Code: Alles auswählen

...
    reader=csv.reader(filename,MyDialect)
...
    writer=csv.writer(filename,MyDialect)
...
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi! Gute Idee :D. Jetzt soll aber mal lionking entscheiden, welche Methode er verwendet. Wer weiß, ob er überhaupt was von Excel (:shock: :D) wissen will :wink:

Gruß, mawe
lionking
User
Beiträge: 28
Registriert: Mittwoch 28. April 2004, 16:03

ich denke ich werde maves erste version nehmen, scheint mir am einfachsten...
Exel usw. brauch ich nich, man sollte die datei nur mit nem texteditor bearbeiten können...

und es funktioniert... Danke schonmal, vielleicht hab ich demnächst noch ne frage...
bis dann
lionking
User
Beiträge: 28
Registriert: Mittwoch 28. April 2004, 16:03

so da kommt auch schon die nächste frage...

Code: Alles auswählen

self.bon=Tkinter.Text(bonframe, relief="groove", bd = "1", width = "40", height="8")
self.bon.grid(row=1, column=0)
in diesem "virtuellen kassenbon" werden die einzelnen artikel die verkauft wurden angezeigt...
jedoch wenn der inhalt zu gross wird geht es am unteren rand einfach weiter, und man sieht es nich mehr...
wie mache ich das, dass er automatisch runterscrollt?
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Hi!

Dafür gibt's see:

Code: Alles auswählen

self.bon.see("end")
Wenn du auch noch eine Scrollbar dazuhaben willst, könntest Du das so machen:

Code: Alles auswählen

import Tkinter

class ScrolledText(Tkinter.Text):
	def __init__(self,parent):
		self.scrollbar = Tkinter.Scrollbar(parent)
		self.scrollbar.pack(side="right",fill="y")
		Tkinter.Text.__init__(self,parent,width=40,height=8,yscrollcommand=self.scrollbar.set)
		self.see("end")
		self.scrollbar.config(command=self.yview)

		
root = Tkinter.Tk()
st = ScrolledText(root)
st.pack()
root.mainloop()
Oder Du verwendest gleich PMW. Da ist sowas schon dabei.

Gruß, mawe
Antworten