Difference between revisions of "Python"
From Teknologisk videncenter
(Created page with "<center>'''Python kodning med Tkinter'''</center> <center>'''(Python GUI creation)'''</center> '''Main file coding (InsertViaTekstbox.py) :''' <source lang="python"> #!/usr/...") |
(No difference)
|
Revision as of 16:45, 11 January 2012
Main file coding (InsertViaTekstbox.py) :
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Mikkel, Hans, Søren, Ib, Åse
from Tkinter import * #Importere alle funktioner fra Tkinter i python
from writefile import * #Importere alle funktioner fra filen writefile
#Function som bruges til at indsætte tekst i listbox samt tekstfil
def Insert():
name = entI.get() #Henter tekst fra Entrybox
Mnames = name.split(', ') #Splitter ved flere navne indsat i Entry box
for item in Mnames: #For hver item
InsertItem(item) #Indsættes tekst i listbox
FileWrite(item, 'a') #Skrives ind i tekstfil
entI.delete(0,END)# Sletter teksten i Entrybox
#Function til sletning af tekst i listbox samt tekstfil</nowiki>
def Remove():
name = entI.get()
if name == 'allnames': #Hvis teksten 'allnames' findes i Entrybox
FileWrite('','w') #Der skrives til tekst filen i write men intet bliver skrevet i den
entI.delete(0,END) #Entrybox tekst slettes
Antal = listb.size() -1 #Størrelse af listb findes samt -1
listb.delete(0,Antal) #Sletning af listbox tekst fra 0 til Antal
if not name == 'allnames': #Hvis ikke teksten 'allnames' findes i Entrybox
Antal = listb.size() -1
Sammlign = listb.get(0,Antal) #Tager alt fra listbox og sætter i Sammlign
listb.delete(0,Antal)
for item in Sammlign:#For hver item i Sammlign
if not item == name: #Hvis item ikke er lig Entrybox
InsertItem(item) #Indsæt tekst i listbox
FileWrite('','w') #Sletning af alt i tekst fil
for item in Sammlign:
if not item == name: #Item i sammlign som ikke er lig med tekst fra entrybox
FileWrite(item, 'a') #Item skrives til Eof
entI.delete(0,END) #Sletning af entrybox tekst
#Funktion til indsættelse af tekst i listbox
def InsertItem(Name):
listb.insert(END,Name);
root = Tk()
#root.geometry('200x210+350+70')</nowiki>
#Root betyder at Button/Entry/Listbox bliver lavet i root vinduet.
toplabel = Label(root, text = 'Test Python GUI') #Laver en lable
entI = Entry(root) #Laver en EntryBox til indsættelse af tekst.
buttonI = Button(root, text = 'Insert', command = Insert) #Laver knap til Insert funktion
buttonR = Button(root, text = 'Remove', command = Remove) #Laver knap til Remove funktion
listb = Listbox(root, bg = 'blue') #Laver Listbox til visning af navne
# try/catch </nowiki>metode til indskrivning af navne i Names.txt
try:
NamesFromFile = FileRead() # Kalder funktion FileRead fra writefile
for names in NamesFromFile: # For hver item i NamesFromFile
names = names.split('\n') # Splitter for hver \n(ny linie)
for item in names: #For hver item
if not item == '':
InsertItem(item)
except:
pass
# Pack søger for at man kan se dem grafiske i vinduet.
toplabel.pack(pady=5,padx=5) #Pady/padx vil 'pad' iforhold til x/y akslen i vinduet.
entI.pack(anchor = W) # Anchor vil binde button/entry/listb i den vest/østlige del af vinduet.
buttonI.pack(anchor = E)
buttonR.pack(anchor = E)
listb.pack()
root.mainloop()
Secondary file (writefile.py):
#!/usr/bin/python
import os
#Funktion bruges til at skrive til fil </nowiki>
#names = tekst som skal skrives i filen</nowiki>
#x = Metoden der bruges til det (appending, write, read)
def FileWrite(names, x):
FileName = 'Names.txt' #Sætter filnavn
text_file = open(FileName, x+'+b') #Åbner fil samt Laver fil i binær form
text_file.write(names+'\n') #Indsætter tekst i fil.
text_file.close() #Lukker filen
Tkinter tutorial: http://wiki.python.org/moin/Intro%20to%20programming%20with%20Python%20and%20Tkinter
Tkinter funktioner: http://www.scripps.edu/~sanner/python/inputform/tkinterWidgets.html http://tkinter.unpy.net/wiki/Widgets
Python funktioner: http://docs.python.org/library/functions.html