Uhhh che delusione.... :-((

Antonio G. De Padova ga@agdp.de
Dom 4 Giu 2006 00:28:13 CEST


Am Samstag, 3. Juni 2006 17:26 schrieb Emanuele Rocca:
> * Antonio G. De Padova <ga@agdp.de>, [2006-06-02 20:30 +0200]:
> >  piccolo benchmark fatto in casa  lì per lì....
> >
> >  Incremento di 1, fatto mille volte, su 200 caselle visionate
> >  contemporaneamente sul display (casella entry) in python :
>
> Non ho capito bene cosa hai fatto. Puoi postare il codice?
>
> ciao,
>     ema


Certamente. Eccolo.
(L'ho fatto fare da un mio amico che mi sta insegnando il python.
Io non ci capisco ancora una sega. Sono principiante).



#! /usr/bin/python
# -*- coding: iso-8859-15 -*-

# DisplayDemo8 - HaJo Gurt - 2006-05-31
# 2006-05-30 : erste Version
# 2006-05-31 : variables Bildschirm-Layout
# 2006-06-01 : Zeitmessung

""" Demo/Benchmark: Bildschirmformular mit vielen Ausgabefeldern """

import time
from random  import random
from Tkinter import *

root = Tk()
root.title("Display-Demo")

f1 = Frame(); f1.pack()     # Frame für Titel
f2 = Frame(); f2.pack()     # Felder
f3 = Frame(); f3.pack()     # Buttons

labelT = Label(f1, text="Anzeige-Demo", font="Helv 10 bold").pack()

def Inc() :
    """ Werte in den Feldern erhöhen bzw. neu berechnen + anzeigen """
    global Iter, Wert, Feld
    Iter += 1
    Feld[0].delete( 0, END )            ## Erstes Feld als Zähler
    Feld[0].insert( 0, Iter )
    for i in range(1, Anz) :
       #Wert[i] += 1.00001              ## !! Formel zur Berechnung
        Wert[i] = random()              ## !!  neuer Werte in den Feldern
        Feld[i].delete( 0, END )
        Feld[i].insert( 0, str( Wert[i] ) )

def IncX( N=1 ) :
    """ Mehrmals die Feldinhalte erhöhen, Zeit messen """
    Start = time.clock()
    for i in range(N) :
        Inc()
    End = time.clock()
    print "%4d Updates * %d Felder: %8.4f s" % (N, Anz, End-Start)

def Inc1()    : IncX()
def Inc10()   : IncX(10)
def Inc100()  : IncX(100)
def Inc1000() : IncX(1000)

def InitWerte() :
    """ Startwerte in Felder eintragen, Anzeige aktualisieren """
    global Iter, Wert, Feld
    Iter = 0
    for i in range(Anz) :
        Wert[i] = i                     ## !! Startwert
        Feld[i].delete( 0, END )
        Feld[i].insert( 0, str( Wert[i] ) )

Anz = 200
Feld = []                   # Liste für die Anzeigefelder
Wert = []                   # Liste für die Werte
""" Bildschirm-Layout: Anzeigefelder mit Beschriftung, Werte-Liste 
erzeugen """
for i in range(Anz) :
    R = i %  25             # 25 Felder pro Spalte
    C = i // 25 * 2
    labelF = Label(f2, text=i).grid(row=R, column=C)
    Wert.append(0)          # DummyWert
    entryF = Entry(f2, width=14)
    entryF.grid(row=R, column=C+1)
    Feld.append(entryF)
InitWerte()

butInit    = Button( f3, text="Init",    command=InitWerte )
butInc1    = Button( f3, text="Inc1",    command=Inc1, bg="green" )
butInc10   = Button( f3, text="Inc10",   command=Inc10 )
butInc100  = Button( f3, text="Inc100",  command=Inc100 )
butInc1000 = Button( f3, text="Inc1000", command=Inc1000 )
butQuit    = Button( f3, text="Quit",    command=root.quit, bg="red", 
fg="white" )

butInit.pack(    side="left", padx=20, pady=4 )
butInc1.pack(    side="left", padx= 4, pady=4 )
butInc10.pack(   side="left", padx= 4, pady=4 )
butInc100.pack(  side="left", padx= 4, pady=4 )
butInc1000.pack( side="left", padx= 4, pady=4 )
butQuit.pack(    side="left", padx=20, pady=4 )

root.mainloop()
#.


Maggiori informazioni sulla lista glug