hallo liebe pythongemeinde,
ich bin "relativ" neu bei python, und ganz und gar neu bei der nutzung von tkinter. vor folgendem problem stehe ich:
ich habe ein programm, welches beim aufruf messwerte erhält (endlos), diese analysiert, und die analyseergebnisse einfach auslistet (in der konsole ging das super).
grob sah das ungefähr so aus
def analyse(messwert): #messwerte werden analysiert
. . .tolle analyse #erspar ich euch
. . .print "analyseergebnis 1",analyse1,"analyseergebnis 2",analyse2
messung(analyse) # es wird kontinuierlich gemessen, und mit jedem erhaltenen messwert wird automatisch die analyse einmal gestartet
so. funktioniert in der konsole ganz toll, sieht aber doof aus, da verschiedene ergebnisse von interesse sind, die aber einfach nur hintereinander weg (durcheinander eben) aufgelistet werden.
mein wunsch war es diese in einem fenster aufzulisten, ergebnistyp 1 oben, ergebnistyp 2 unten usw.
nur wie bekomme ich die ausgewerteten ergebnisse in mein fenster, wie halte ich die endlosschleife aufrecht etc?
ursprünglich hatte ich mir gedacht, dass das fenster nichts weiter soll, als die auflistung im terminal zu ersetzen (vorerst).
geht das? wie geht das?
ich hoffe ihr könnt mir helfen, und vielen dank für eure zeit, schonmal im vorraus
gruß, mops
kontinuierliche messwertdarstellung im fenster
Hi Trollmops
Dein Problem ist relativ einfach zu lösen:
Bitte noch ein bisschen in die Tutorials schauen.
wuf
Dein Problem ist relativ einfach zu lösen:
Code: Alles auswählen
import random
import time
import Tkinter as tk
ANALYSIS_WIN_WIDTH = 60
ANALYSIS_WIN_HEIGHT = 10
NUM_OF_WINS = 3
class AnalysisWindow(tk.Frame):
def __init__(self, name, win_color='white'):
self.name = name
self.win_color = win_color
self.sample_count = 0
tk.Frame.__init__(self, app_win)
self.pack()
self.label_var = tk.StringVar()
self.label_var.set(name)
tk.Label(self, textvariable=self.label_var, bd=1, relief='raised',
pady=4).pack(fill='x')
win_frame = tk.Frame(self)
win_frame.pack(padx=10, pady=10)
yscrollbar = tk.Scrollbar(win_frame, width=12, troughcolor='gray')
yscrollbar.pack(side='right', fill='y')
self.sample_win = tk.Text(win_frame, width=ANALYSIS_WIN_WIDTH,
height=ANALYSIS_WIN_HEIGHT, bg=self.win_color, highlightthickness=0,
yscrollcommand=yscrollbar.set)
self.sample_win.pack()
yscrollbar.config(command=self.sample_win.yview)
def update(self, sample):
self.sample_win.insert('0.0', sample)
self.sample_count += 1
self.label_var.set(self.name + " " + "({0})".format(self.sample_count))
def sample_reader():
analysis_level = random.randint(0, 2)
sample = "Messung-{v:0{digits}} von {t:1}\n".format(
v=app_win.sample_count, digits=4,
t=time.strftime("%Y.%M.%D %H:%M:%S", time.gmtime()))
analysis_wins[analysis_level].update(sample)
app_win.sample_count += 1
app_win.after(500, sample_reader)
app_win = tk.Tk()
app_win.title("Analysis Level Display")
app_win.option_add(
"*Label.font", ('helvetica', 12, 'bold')) #'lightgoldenrod3')
app_win.option_add(
"*Label.foreground", 'steelblue4')
app_win.sample_count = 1
analysis_wins = [AnalysisWindow("Analysis Level-{0}".format(win + 1))
for win in xrange(NUM_OF_WINS)]
sample_reader()
app_win.mainloop()
wuf
Take it easy Mates!
who, du hast mir ja direkt ein ganzes programm geschrieben! (sieht zumindest so aus )
viel versteh ich davon nicht, obwohl ich einiges aus tutorials wiedererkenne. ich komme leider erst morgen dazu das alles mal zusammenzuschustern und auszuprobieren, dann fällts bestimmt auch leichter den code nachzuvollziehen. vielen vielen dank!
zu den tutorials, kannst du mich auf ein bestimmtes verweisen, also eins das zu meinem thema passt? ich hab schon viele tutorials durchgearbeitet, bin inzwischen auch super darin buttons zu setzen, auf deren klick hin sich ein neues fenster öffnet oder so, aber ich hatte keinen hinweis darauf gefunden das fenster einfach nur zur darstellung zu nutzen, sodass es sich automatisch aktualisiert etc. und für jeden messwert neu auf nen knopf zu drücken war nun auch nicht das wahre
also viel dank im vorraus, bei fragen werd ich mich morgen nochmal melden. (und wär super wenn du nen link zu den tutorials hast, von denen du meintest sie könnten mir hier weiterhelfen)
gruß, mops
viel versteh ich davon nicht, obwohl ich einiges aus tutorials wiedererkenne. ich komme leider erst morgen dazu das alles mal zusammenzuschustern und auszuprobieren, dann fällts bestimmt auch leichter den code nachzuvollziehen. vielen vielen dank!
zu den tutorials, kannst du mich auf ein bestimmtes verweisen, also eins das zu meinem thema passt? ich hab schon viele tutorials durchgearbeitet, bin inzwischen auch super darin buttons zu setzen, auf deren klick hin sich ein neues fenster öffnet oder so, aber ich hatte keinen hinweis darauf gefunden das fenster einfach nur zur darstellung zu nutzen, sodass es sich automatisch aktualisiert etc. und für jeden messwert neu auf nen knopf zu drücken war nun auch nicht das wahre
also viel dank im vorraus, bei fragen werd ich mich morgen nochmal melden. (und wär super wenn du nen link zu den tutorials hast, von denen du meintest sie könnten mir hier weiterhelfen)
gruß, mops
z.B.
Python-Tutorial 3.2
PEP-8 Leitfaden
FredrikLundh
Effbot
tkDocs
NewMexicoTech
usw. usw.
Aber evtl. kennst du die meisten schon.
wuf
Python-Tutorial 3.2
PEP-8 Leitfaden
FredrikLundh
Effbot
tkDocs
NewMexicoTech
usw. usw.
Aber evtl. kennst du die meisten schon.
wuf
Take it easy Mates!
Hi Trollmops
Sorry bei meinem Skript hat sich noch ein Fehler eingeschlichen.sollte:
heissen.
wuf
Sorry bei meinem Skript hat sich noch ein Fehler eingeschlichen.
Code: Alles auswählen
t=time.strftime("%Y.%M.%D %H:%M:%S", time.gmtime())
Code: Alles auswählen
t=time.strftime("%Y.%m.%d %H:%M:%S", time.gmtime())
wuf
Take it easy Mates!
ah super! die tutorials sehen echt gut aus, besonders tfdocs. werd ich morgen also gut was zu tun haben ... ich frage mich nur wieso ich da nicht shcon drüber gestolpert bin, sondern stattdessen irgendwelche 0815 tutorials über "grundlagen" abtippen durfte.
so, ich hab dein skript grad ma so laufen lassen wie du es gepostet hast. AWESOME!!!
jetzt versteh ic hauch erst was das randomzeug da drin zu suchen hatte, bin halt noch nicht so gut im code lesen ohne zu wissen was er am ende macht. nun, wo ich das fenster mal gesehn hab ergibt auch alles sinn
ich werd mich nun mal ransetzen und alles ein wenig zusammenwerkeln, vielen vielen dank nochmal!
jetzt versteh ic hauch erst was das randomzeug da drin zu suchen hatte, bin halt noch nicht so gut im code lesen ohne zu wissen was er am ende macht. nun, wo ich das fenster mal gesehn hab ergibt auch alles sinn
ich werd mich nun mal ransetzen und alles ein wenig zusammenwerkeln, vielen vielen dank nochmal!
Super. Da hat sich einer aber Mühe gegeben. Die Tutorials haben mir jetzt schon weitergeholfen, insbesondere das Erste und das Zweite.wuf hat geschrieben:z.B.
Python-Tutorial 3.2
PEP-8 Leitfaden
FredrikLundh
Effbot
tkDocs
NewMexicoTech
usw. usw.
Aber evtl. kennst du die meisten schon.
wuf
LG
Clemens