kein problem mehr mit klassen .. codeupdate

Fragen zu Tkinter.
Benutzeravatar
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

kein problem mehr mit klassen .. codeupdate

Beitragvon powerslide » Donnerstag 20. Januar 2005, 13:30

[edit]
was ihr hier seht ist bereits das endprodukt.. funzt!
nochmals danke an alle!
[/edit]
[edit2]
ich hab mal etwas weiter gebastelt also aktualisiere ich mal
probleme gibt es momentan keine :D
[/edit2]


Hallo,

nach längerer abstinenz melde ich mich auch mal wieder..
hab endlcih mal wieder zeit mit python weiter zu basteln..

leider scheitert es irgendwie bereits bei den einfachsten sachen..

ich hab mal versucht klassen zu benutzen

nunja.. das kam bei raus:

Code: Alles auswählen

#---------------------------------------------------------
# imports

import os
import re
import tkFileDialog
import tkMessageBox
import ScrolledText
import shutil
from Tkinter import *

class convertWindow:

#---------------------------------------------------------
# build gui

    def __init__(self):
       
        self.root=Tk()
       
        frame=Frame(self.root)
        frame.pack(expand=YES)
       
        self.root.title('XML converter vol 1.0')

        selectrahmen = Frame(self.root, relief='groove', borderwidth='2')
        selectrahmen.pack(fill='x')

        select1 = Frame(selectrahmen)
        select1.pack(fill='x')
        select2 = Frame(selectrahmen)
        select2.pack(fill='x')

        selectLab = Label(select1, text='Would you like to convert a single file or multiple files?')
        selectLab.pack(side = 'top', anchor='w')

        self.v = IntVar()
        Radiobutton(select2, text='single', variable=self.v, value=1, command=self.sing).pack(side='left')
        Radiobutton(select2, text='multiple', variable=self.v, value=2, command=self.mult).pack(side='left')
        self.v.set('1')
       
        eingaberahmen = Frame(self.root, relief='groove', borderwidth='2')
        eingaberahmen.pack(fill='x')

        suchDatei = Label(eingaberahmen, text = 'File: ')
        suchDatei.grid(row=1,column=1)

        self.datei = Entry(eingaberahmen, width=45)
        self.datei.grid(row=1,column=2)

        self.dat = Button(eingaberahmen, text = 'search', command=self.get_file)
        self.dat.grid(row=1,column=3)

        suchPfad = Label(eingaberahmen, text = 'Directory: ')
        suchPfad.grid(row=2,column=1)

        self.path = Entry(eingaberahmen, width=45, state='disabled')
        self.path.grid(row=2,column=2)

        self.direct = Button(eingaberahmen, text = 'search',state='disabled', command=self.get_dir)
        self.direct.grid(row=2,column=3)

        eingaberahmen2 = Frame(self.root)
        eingaberahmen2.pack()

        self.cancel = Button(eingaberahmen2, text = 'Cancel', command=self.can)
        self.cancel.pack(side='left')
        self.ok = Button(eingaberahmen2, text = 'OK', command=self.init)
        self.ok.pack(side='left')

        ausgaberahmen = Frame(self.root, relief='groove', borderwidth='2')
        ausgaberahmen.pack(fill='x')

        ausgabeLab = Label(ausgaberahmen, text = 'Messagescreen').pack(side = 'top', anchor='w')

        self.ausgabe = ScrolledText.ScrolledText(ausgaberahmen, width=61, height=10, state='disabled', bg='white')
        self.ausgabe.pack()
        self.set_out('Please select a file for conversion.', 'y')

#---------------------------------------------------------
# get directory

    def get_dir(self):
        self.path.insert(0,tkFileDialog.askdirectory())

#---------------------------------------------------------
# get filepath

    def get_file(self):
        self.datei.insert(0,tkFileDialog.askopenfilename())

#---------------------------------------------------------
# cancel

    def can(self):
        old1 = self.path['state']
        old2 = self.datei['state']
        self.path['state'] = 'normal'
        self.datei['state'] = 'normal'                 
        self.path.delete(0,END)
        self.datei.delete(0,END)
        self.path['state'] = old1
        self.datei['state'] = old2
        self.v.set('1')
        self.path['state'] = 'disabled'
        self.direct['state'] = 'disabled'
        self.datei['state'] = 'normal'
        self.dat['state'] = 'normal'
        self.set_out('Please select a file for conversion.', 'y')

#---------------------------------------------------------
# convert a single file window behaviour
   
    def sing(self):
        self.path.delete(0,END)
        #self.datei.delete(0,END)
        self.path['state'] = 'disabled'
        self.direct['state'] = 'disabled'
        self.datei['state'] = 'normal'
        self.dat['state'] = 'normal'
        self.set_out('Please select a file for conversion.', 'y')

#---------------------------------------------------------
# convert multiple files window behaviour
   
    def mult(self):
        #self.path.delete(0,END)
        self.datei.delete(0,END)
        self.path['state'] = 'normal'
        self.direct['state'] = 'normal'
        self.datei['state'] = 'disabled'
        self.dat['state'] = 'disabled'
        self.set_out('Please select a directory to make the rogram search for files.\nNote: ALL xml files will be converted!', 'y')

#---------------------------------------------------------
# print messages to messagescreen

    def set_out(self, text, opt):
        text = text + '\n--------------------------------------------------------------------------------------------------------------------------\n'
        self.ausgabe['state'] = 'normal'
        if (opt == 'y'):
            self.ausgabe.delete(1.0,END)
        self.ausgabe.insert(END, str(text))
        self.ausgabe['state'] = 'disabled'
        self.ausgabe.see(END)
        self.ausgabe.update_idletasks()

#---------------------------------------------------------
# start conversion

    def init(self):
        conversion = conv()

#---------------------------------------------------------
# conversion

class conv:

    def __init__(self):

        x = convert.v.get()
        if (x == 1):
            pfad = convert.datei.get()
            if (pfad == ''):
                tkMessageBox.showerror('Error','You must specify a file to convert!')
                return
            if not pfad.endswith('.xml'):
                tkMessageBox.showerror('Error','Invalid file format!\nYou must specify a XML-file!')
                convert.can()
                return
            convert.set_out(pfad, 'n')
            self.convertfile(pfad)
            pfad, filename = os.path.split(pfad)
            self.bak_killer_call(pfad)
            self.restart()
        elif (x == 2):
            pfad = convert.path.get()
            if (pfad == ''):
                tkMessageBox.showerror('Error','You must specify a directory!')
                return
            convert.set_out(pfad, 'n')
            self.multipleFiles(pfad, '.xml')
            self.bak_killer_call(pfad)
            self.restart()

#---------------------------------------------------------
# restart program or quit

    def restart(self):
        eingabe = tkMessageBox.askyesno('More...','Would you like to convert more files?')
        if eingabe:
            convert.can()
            return
        else:
            convert.set_out('phasing down application','n')
            convert.root.destroy()

#---------------------------------------------------------   
# xml_check

    def xml_check(self, text):
        #check for TemiX control structures
        if re.search('\[CDATA\[', text):
            return 1
        #check for ProjektKit Tag
        if re.search('<pkit-', text):
            return 2
        else:
            return 0
       
#---------------------------------------------------------   
# filter_select

    def filter_select(self, text):

        #TemiX Tags included:
        if (self.xml_check(text) == 1):
            tkMessageBox.showinfo('Info','''File was already opened in TemiX. \n '[' and ']' could not be converted!''')

            text = self.f0(text)
            text = self.f1(text)
            text = self.f3(text)
            text = self.f4(text)
            return text

        #ProjektKit export:
        if (self.xml_check(text) == 2):

            text = self.f0(text)
            text = self.f1(text)
            text = self.f2(text)
            text = self.f3(text)
            text = self.f4(text)
            return text

        else:
            return text

#---------------------------------------------------------   
# filter definitions

    def f0(self, text):
        return text.replace('[Q-]','').replace('[PM-]','').replace('[role]','')

    def f1(self, text):
        return text.replace('<','<').replace('>','>')
   
    def f2(self, text):
        return text.replace('[','').replace(']','')

    def f3(self, text):
        while 1:
            ort = re.search ('<para class="heading.">(.+?)</para>', text)
            if ort == None:
                break
            text = re.sub('<para class="heading.">(.+?)</para>', r'<p><b>\1</b></p>', text)
        return text

    def f4(self, text):
        return text.replace('<para>','<p>').replace('</para>','<p>')

#---------------------------------------------------------
# multiple file search and convert
 
    def multipleFiles(self, path, extension, depth=0):
        for item in os.listdir(path):
            itemWithPath = os.path.join(path, item)
            if item.endswith(extension):
                datei = itemWithPath
                convert.set_out('Starting conversion', 'n')
                in_file = open(datei,'r')
                inhalt = in_file.read()
                in_file.close()
                bak = datei + '_bak'
                try:
                    shutil.copyfile(datei, bak)
                except IOError:
                    convert.set_out('Backup file could not be generated','n')
                new_string = str(inhalt)
                new_string = self.filter_select(new_string)
                try:
                    out_file = open(datei, 'w')   
                except IOError:
                    convert.set_out('File could not be opened!','n')
                out_file.write(new_string)
                out_file.close()
                convert.set_out('File converted and written','n')
            if os.path.isdir(itemWithPath):
                self.multipleFiles(itemWithPath, extension, depth + 1)

#---------------------------------------------------------
# single file convert

    def convertfile(self, datei):
        convert.set_out('Starting conversion','n')
        in_file = open(datei,'r')
        inhalt = in_file.read()
        in_file.close()
        bak = datei + '_bak'
        try:
            shutil.copyfile(datei, bak)
        except IOError:
            convert.set_out('Backup file could not be generated','n')
        new_string = str(inhalt)
        new_string = self.filter_select(new_string)
        try:
            out_file = open(datei, 'w')   
        except IOError:
            convert.set_out('File could not be opened!','n')
        out_file.write(new_string)
        out_file.close()
        convert.set_out('File converted and written','n')

#---------------------------------------------------------
# bak_killer call

    def bak_killer_call(self, pfad):
        convert.set_out('Starting remove engine','n')
        eingabe = tkMessageBox.askyesno('Remove backup?','Would you like to remove the backup [*.xml_bak] files?')
        if not eingabe:
            convert.set_out('To remove backup files, simply run bak_remover.','n')
            return
        else:
            eingabe = tkMessageBox.askyesno('Remove backup?','Really remove ALL backup files?')
            if not eingabe:
                return
            else:
                self.bak_killer(pfad, '.xml_bak')
           
#---------------------------------------------------------
# backup killer               

    def bak_killer(self, path, extension, depth=0):
        for item in os.listdir(path):
            itemWithPath = os.path.join(path, item)
            if item.endswith(extension):
                os.remove (itemWithPath)
            if os.path.isdir(itemWithPath):
                self.bak_killer(itemWithPath, extension, depth + 1)

#---------------------------------------------------------
# start gui

convert = convertWindow()
convert.root.mainloop()




keine ahnung warum.. aber das will nicht

jemand evtl ne idee?
wär super

slide
Zuletzt geändert von powerslide am Donnerstag 27. Januar 2005, 15:11, insgesamt 2-mal geändert.
How many people can read hex if only you and dead people can read hex?

There are 10 types of people in the world: Those who understand binary, and those who don't...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 20. Januar 2005, 13:56

Ist zwar jetzt nicht direkt eine Tkinter Frage, sondern eine des Naumensraumes. Zudem auch noch recht leicht zu lösen:

Code: Alles auswählen

#!/usr/bin/env python
# -*- encoding: latin-1 -*-
import os, string, re
import tkFileDialog
import ScrolledText
from Tkinter import *

class convertWindow:
    def __init__(self):
        self.root=Tk()

        frame=Frame(self.root)
        frame.pack(expand=YES)

        self.root.title('XML converter vol 1.0')

        selectrahmen = Frame(self.root, relief="groove", borderwidth="2")
        selectrahmen.pack(fill="x")

        select1 = Frame(selectrahmen)
        select1.pack(fill="x")
        select2 = Frame(selectrahmen)
        select2.pack(fill="x")

        selectLab = Label(select1, text='Would you like to convert a single file or multiple files?')
        selectLab.pack(side = "top", anchor="w")

        v = IntVar()
        Radiobutton(select2, text="single", variable=v, value=1).pack(side="left")
        Radiobutton(select2, text="multiple", variable=v, value=2).pack(side="left")
        v.set('1')
       
        eingaberahmen = Frame(self.root, relief="groove", borderwidth="2")
        eingaberahmen.pack(fill="x")

        suchDatei = Label(eingaberahmen, text = 'File: ')
        suchDatei.grid(row=1,column=1)

        datei = Entry(eingaberahmen, width=45)
        datei.grid(row=1,column=2)

        dat = Button(eingaberahmen, text = 'search')
        dat.grid(row=1,column=3)

        suchPfad = Label(eingaberahmen, text = 'Directory: ')
        suchPfad.grid(row=2,column=1)

        path = Entry(eingaberahmen, width=45, state='disabled')
        path.grid(row=2,column=2)

        direct = Button(eingaberahmen, text = 'search',state='disabled')
        direct.grid(row=2,column=3)

        eingaberahmen2 = Frame(self.root)
        eingaberahmen2.pack()

        cancel = Button(eingaberahmen2, text = 'Cancel')
        cancel.pack(side='left')
        ok = Button(eingaberahmen2, text = 'OK')
        ok.pack(side='left')

        ausgaberahmen = Frame(self.root, relief="groove", borderwidth="2")
        ausgaberahmen.pack(fill="x")

        ausgabeLab = Label(ausgaberahmen, text = 'Messagescreen').pack(side = "top", anchor="w")

        ausgabe = ScrolledText.ScrolledText(ausgaberahmen, width=61, height=10, state='disabled', bg='white')
        ausgabe.pack()
        #set_out('Please select a file for conversion.', 'y')

convert = convertWindow()
convert.root.mainloop()


Ich habe aus root self.root gemacht, set_out() auskommentiert, da ich es nicht habe und bei mainloop auf das richtige root vercodet.

Hoffe, es ist das was du wolltest.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Donnerstag 20. Januar 2005, 13:58

Hi!

Also auf die Schnelle:
-) root.mainloop() gehört noch in die Klasse rein (unter set_out)
-) set_out soll ja anscheinend eine Funktion sein. Wo is die denn definiert?

EDIT: *seufz* war zu langsam :wink:

Gruß, mawe
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 20. Januar 2005, 14:31

mawe hat geschrieben: -) root.mainloop() gehört noch in die Klasse rein (unter set_out)
-) set_out soll ja anscheinend eine Funktion sein. Wo is die denn definiert?

Auch eine gute Lösung :), wenn nicht sogar besser. Das Problem ist nur, dass du dann aus anderen Funktionen keinen Zugriff auf root hast.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

Beitragvon powerslide » Donnerstag 20. Januar 2005, 14:39

hi.. und schonmal danke..

set_out ist noch nicht in eine klasse integriert deshalb hab ich es nicht gepostet.. ist folgendermaßen definiert:

Code: Alles auswählen

def set_out(text, opt):
    text = text + '\n--------------------------------------------------------------------------------------------------------------------------\n'
    ausgabe["state"] = "normal"
    if (opt == 'y'):
        ausgabe.delete(1.0,END)
    ausgabe.insert(END, str(text))
    ausgabe["state"] = "disabled"
    ausgabe.see(END)


ich hab jetzt mal die lösung von leonidas probiert.. und komischerweise gibt er jetzt den fehler aus: global name root is not defined...
gut wenn ich global root in den code einfüge .. dann umgeh ich das.. aber gibts da auch ne elegantere lösung?
How many people can read hex if only you and dead people can read hex?



There are 10 types of people in the world: Those who understand binary, and those who don't...
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Donnerstag 20. Januar 2005, 14:46

Hi!

Du hast nicht zufällig vergessen self.root zu schreiben, wie's Leonidas gezeigt hat?

Code: Alles auswählen

class convertWindow:
    def __init__(self):
        self.root=Tk()    # <-


Gruß, mawe
Benutzeravatar
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

Beitragvon powerslide » Donnerstag 20. Januar 2005, 14:55

nein.. nein..

das ist es ja was mich wundert!
How many people can read hex if only you and dead people can read hex?



There are 10 types of people in the world: Those who understand binary, and those who don't...
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Donnerstag 20. Januar 2005, 14:59

Seltsam ... hast Du auch überall sonst im Script root in self.root umgeschrieben. Bei mir funktionierts nämlich.

Gruß, mawe
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 20. Januar 2005, 15:02

Hi,

wie schaut denn die Zeile aus wo der Fehler angezeigt wird, bzw. die ganze Fehlermeldung?


Gruß

Dookie

Code: Alles auswählen

#!/usr/bin/env python
import this
Benutzeravatar
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

Beitragvon powerslide » Donnerstag 20. Januar 2005, 15:12

okay ... hatte sich doch noch ein root versteckt :oops:

code schaut nun so aus:

Code: Alles auswählen

#---------------------------------------------------------
# imports

import os
import string
import re
import tkFileDialog
import ScrolledText
from Tkinter import *

#---------------------------------------------------------
# print messages to messagescreen

def set_out(text, opt):
    text = text + '\n--------------------------------------------------------------------------------------------------------------------------\n'
    ausgabe["state"] = "normal"
    if (opt == 'y'):
        ausgabe.delete(1.0,END)
    ausgabe.insert(END, str(text))
    ausgabe["state"] = "disabled"
    ausgabe.see(END)
   

#---------------------------------------------------------
# build gui

class convertWindow:
    def __init__(self):
       
        global ausgabe

        self.root=Tk()

        frame=Frame(self.root)
        frame.pack(expand=YES)

        self.root.title('XML converter vol 1.0')

        selectrahmen = Frame(self.root, relief="groove", borderwidth="2")
        selectrahmen.pack(fill="x")

        select1 = Frame(selectrahmen)
        select1.pack(fill="x")
        select2 = Frame(selectrahmen)
        select2.pack(fill="x")

        selectLab = Label(select1, text='Would you like to convert a single file or multiple files?')
        selectLab.pack(side = "top", anchor="w")

        v = IntVar()
        Radiobutton(select2, text="single", variable=v, value=1).pack(side="left")
        Radiobutton(select2, text="multiple", variable=v, value=2).pack(side="left")
        v.set('1')
       
        eingaberahmen = Frame(self.root, relief="groove", borderwidth="2")
        eingaberahmen.pack(fill="x")

        suchDatei = Label(eingaberahmen, text = 'File: ')
        suchDatei.grid(row=1,column=1)

        datei = Entry(eingaberahmen, width=45)
        datei.grid(row=1,column=2)

        dat = Button(eingaberahmen, text = 'search')
        dat.grid(row=1,column=3)

        suchPfad = Label(eingaberahmen, text = 'Directory: ')
        suchPfad.grid(row=2,column=1)

        path = Entry(eingaberahmen, width=45, state='disabled')
        path.grid(row=2,column=2)

        direct = Button(eingaberahmen, text = 'search',state='disabled')
        direct.grid(row=2,column=3)

        eingaberahmen2 = Frame(self.root)
        eingaberahmen2.pack()

        cancel = Button(eingaberahmen2, text = 'Cancel')
        cancel.pack(side='left')
        ok = Button(eingaberahmen2, text = 'OK')
        ok.pack(side='left')

        ausgaberahmen = Frame(self.root, relief="groove", borderwidth="2")
        ausgaberahmen.pack(fill="x")

        ausgabeLab = Label(ausgaberahmen, text = 'Messagescreen').pack(side = "top", anchor="w")

        ausgabe = ScrolledText.ScrolledText(ausgaberahmen, width=61, height=10, state='disabled', bg='white')
        ausgabe.pack()
        set_out('Please select a file for conversion.', 'y')

convert = convertWindow()
convert.root.mainloop()



soweit so gut..
könnte mir jetzt einer sagen wie ich meine funktionen schön unterbringe?
also neben dem set_out gibts ja doch noch einige mehr
macht man sowas am besten in ne eigene klasse?
oder was macht man?
und.. wie kann ich die definition von "global ausgabe" verhindern.. auch mit self *probier* ??
How many people can read hex if only you and dead people can read hex?



There are 10 types of people in the world: Those who understand binary, and those who don't...
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 20. Januar 2005, 15:17

powerslide hat geschrieben:könnte mir jetzt einer sagen wie ich meine funktionen schön unterbringe?
also neben dem set_out gibts ja doch noch einige mehr
macht man sowas am besten in ne eigene klasse?
oder was macht man?
und.. wie kann ich die definition von "global ausgabe" verhindern.. auch mit self *probier* ??

Code: Alles auswählen

self.ausgabe = blabla...
würe mir einfallen. Was die Methoden angeht: hängt ab, du kannst es natürlich machen, wenn du denkst, dass es thematisch in die Klasse passt, zum beispiel, wenn sie Variablen der Klasse modifizieren. Alternative wäre es auch, sie in ein anderes Modul zu verschieben, so hat man auch einige Ordnung.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Donnerstag 20. Januar 2005, 15:19

Hi!

Warum schmeisst Du set_out nicht einfach in die Klasse rein?

Code: Alles auswählen

set_out(self, text, opt):
 ...

Aufgerufen wird sie dann mit self.set_out(...). ausgabe noch in self.ausgabe ändern und fertig :wink:

EDIT: *argh* Leonidas war wieder mal schneller.
@Leonidas: self.ausgabe = ... funktioniert aber nur, wenn set_out in der Klasse ist.

Gruß, mawe
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 20. Januar 2005, 15:26

mawe hat geschrieben:EDIT: *argh* Leonidas war wieder mal schneller.
@Leonidas: self.ausgabe = ... funktioniert aber nur, wenn set_out in der Klasse ist.

Deswegen lade ich die Seite ja auch alle paar Sekunden neu ;)

Das wäre jetzt so ein guter Grund self.set_out in die Klasse zu Verschieben. Global zu vermeiden ist ein sehr guter Grund.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
powerslide
User
Beiträge: 51
Registriert: Freitag 10. Dezember 2004, 09:05
Wohnort: Erlangen
Kontaktdaten:

Beitragvon powerslide » Donnerstag 20. Januar 2005, 15:31

hmm.. wenn ich alle funktionen dann aber in die klasse schiebe.. dann hab ich am ende aber doch wieder den selben "kauderwelsch" wie vorher ohne Klasse .. oder?

also was noch fehlt ..
die funktionen für die search schaltflächen
die cancel funktion
und die funktion die die windowbehaviour ändert je nachdem ob single oder multiple angewält ist ..

naja und dann die eigene convertierungsfunktion..

hmm.. die evtl in ne eigene klasse?
How many people can read hex if only you and dead people can read hex?



There are 10 types of people in the world: Those who understand binary, and those who don't...
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Beitragvon mawe » Donnerstag 20. Januar 2005, 15:37

Hi!

Naja, so grossartig viel is das ja auch wieder nicht, als dass "Kauderwelsch" entstehen könnte :wink:
Alles was mit der GUI zu tun hat, würde ich in die Klasse schmeissen, die Convertierungsfunktion von mir aus in eine eigene (aber das hast Du ja schon selbst gesagt).

EDIT: Wenn dir sehr fad ist, könntest Du z.B. aus den Search-Buttons eine eigene Klasse mit zugehörender Funktion erstellen. Nur so eine Idee ...

Hihi, jetzt war ich schneller :)

Gruß, mawe
Zuletzt geändert von mawe am Donnerstag 20. Januar 2005, 15:41, insgesamt 1-mal geändert.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder