Die Suche ergab 23 Treffer

von moccajoghurt
Sonntag 19. August 2012, 21:36
Forum: Allgemeine Fragen
Thema: Anzahl von loops in for Schleife dynamisch ändern
Antworten: 7
Zugriffe: 2294

Anzahl von loops in for Schleife dynamisch ändern

Habe folgendes Problem:
Ich durchlaufe eine for-Schleife und möchte in bestimmten Fällen, dass die durchlaufende Variable erhöht werden kann, um die Anzahl der Schleifendurchläufe zu verringern. Im folgenden Beispiel soll die Schleife eigentlich nur 5 mal durchlaufen werden, sie wird aber 10 mal ...
von moccajoghurt
Sonntag 5. August 2012, 20:14
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Ok ich habe festgestellt, dass ich das Toplevel in einem anderen Thread zerstören möchte, als es erstellt wurde. Es handelt sich dabei um einen Thread, der parallel zur mainloop läuft. Ich gehe gerade davon aus, dass es daran liegen könnte.
Jetzt brauche ich eine Möglichkeit der mainloop mitzuteilen ...
von moccajoghurt
Sonntag 5. August 2012, 19:29
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Kann es sein, dass es daran liegt, dass ich das Toplevel erst erzeuge, wenn ein event in der mainloop stattfindet und es dadurch erst "nach" der mainloop erstellt wird?
Ich werde es jetzt mal so probieren, dass ich das Toplevel vor dem Start der mainloop erstelle und es erst nach dem event sichtbar ...
von moccajoghurt
Sonntag 5. August 2012, 19:26
Forum: Tkinter
Thema: Frame gefüllt mit flexibel vielen Labels
Antworten: 8
Zugriffe: 2863

Re: Frame gefüllt mit flexibel vielen Labels

Hi fnorb!
Danke für deine Antwort.
Ich habe es bereits umgesetzt, indem ich ein Canvas-Widget verwendet habe. Das Text-Widget wäre anscheinend aber die bessere Variante gewesen, weil das Layouting besser gelöst wird. Vielleicht ändere ich es nochmal, wenn das Projekt fertig ist und auf Anklang stößt ...
von moccajoghurt
Samstag 4. August 2012, 01:24
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Ich habe die Klasse so umgeschrieben, dass nurnoch ein Toplevel erstellt wird, dass danach zerstört werden soll:

from ttk import Progressbar
import Tkinter


class download_bar(object):

def __init__(self, main):
self.mainclass = main
self.window = Tkinter.Toplevel(self.mainclass.main_window ...
von moccajoghurt
Freitag 3. August 2012, 01:07
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Habe jetzt ein anderes Problem mit der Scrollbar. Alles funktioniert eigentlich wie gewollt, nur wenn die Scrollbar zusammen mit dem Toplevel zerstört werden soll, dann bleibt sie, obwohl das Toplevel zerstört wurde, immernoch sichtbar.

Hier die Klasse:

from ttk import Progressbar
import Tkinter ...
von moccajoghurt
Freitag 3. August 2012, 00:27
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

BlackJack hat geschrieben:@moccajoghurt: `Tk` ist sozusagen das Hauptfenster. Wenn man weitere Fenster haben möchte kann man `Toplevel` dafür verwenden.
Hätte ich das vorher gewusst, hätte ich mir viele Stunden rumprobieren gespart. Aber jetzt weiß ich es.
Vielen Dank nochmal an alle, Thema ist gelöst.
von moccajoghurt
Donnerstag 2. August 2012, 20:55
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Ok jetzt verstehe ich!
Ist es denn möglich eine Progressbar in die Mitte des Hauptfensters zu setzen, ohne dass die anderen Widgets berücksichtigt werden müssen? Das war nämlich der Hauptgrund aus dem ich einfach ein neues Tk() erstellt habe. Ich möchte die Progressbar als unabhängige über den ...
von moccajoghurt
Donnerstag 2. August 2012, 16:07
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Hatte das schon ausprobiert. Dann kommt, dass das None-Object nicht über das Attribut dl_bar verfügt.
von moccajoghurt
Donnerstag 2. August 2012, 13:40
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Ok werde die __ zukünftig einfach weglassen.

Wenn ich ein

print("### INIT LOAD BAR ###")

In init_load_bar packe, dann sieht die Exception folgendermaßen aus:

>pythonw -u "main.py"
### INIT LOAD BAR ###
Exception in thread Thread-23:
Traceback (most recent call last):
File "C:\Python27\lib ...
von moccajoghurt
Donnerstag 2. August 2012, 12:51
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

import g_main, g_load
import search
import time
import threading

class mainclass():

def __init__(self):
self.open_gui()
self.elapsed = 0
self.time_elap = 0


def open_gui(self):
self.main_window = g_main.maingui(self)

def init_load_bar(self, query):

self.dl_bar = g_load.download ...
von moccajoghurt
Donnerstag 2. August 2012, 12:19
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Die Klasse, die erstellt wird:
from ttk import Progressbar
import Tkinter
import threading


class download_bar():

def __init__(self, query, main):
self.mainclass = main
self.window = Tkinter.Tk()
self.window.overrideredirect(True)
self.bar = Progressbar(self.window, length=200)
self.bar ...
von moccajoghurt
Donnerstag 2. August 2012, 12:03
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

Ja davon würde ich eigentlich auch ausgehen, aber sie wurde tatsächlich erstellt, man kann sie ja auch sehen...
Gibt es noch irgendeinen anderen Grund, weshalb sie nicht mehr aufgerufen werden könnte, außer dass sie bereits gelöscht wurde oder gar nicht erstellt wurde. Denn die letzten beiden Gründe ...
von moccajoghurt
Donnerstag 2. August 2012, 00:08
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Re: Klassenattribut ist nach Erstellung nicht mehr ansprechb

@moccajoghurt: Wenn das Attribut nicht gefunden wird, dann wurde es ganz offensichtlich auch nicht an das Objekt gebunden. Oder inzwischen wieder entfernt. Was ungewöhnliches Vorgehen wäre.
Eigentlich sollte es mit
self.dl_bar = g_load.download_bar(query, self)
an das Objekt gebunden worden sein ...
von moccajoghurt
Mittwoch 1. August 2012, 23:48
Forum: Tkinter
Thema: Klassenattribut ist nach Erstellung nicht mehr ansprechbar
Antworten: 28
Zugriffe: 4270

Klassenattribut ist nach Erstellung nicht mehr ansprechbar

Hi,
ich stehe bei meinem Python Code vor einem weiteren Rätsel. Ich erstelle folgendermaßen ein Klassenobjekt:

def init_load_bar(self, query):

self.dl_bar = g_load.download_bar(query, self)


Anschließend werden ein paar Threads erstellt und das Programm macht ein paar Berechnungen ...
von moccajoghurt
Dienstag 31. Juli 2012, 22:34
Forum: Tkinter
Thema: mainloop wird bei eigenem Thread nicht gestartet
Antworten: 5
Zugriffe: 1459

Re: mainloop wird bei eigenem Thread nicht gestartet

Kann auch sein, dass ich Glück hatte, bei swing habe ich mämlich nie

Code: Alles auswählen

SwingUtilities.invokeLater
genutzt. Gut, dann werde ich es so machen, wie du vorgeschlagen hast.
von moccajoghurt
Dienstag 31. Juli 2012, 22:22
Forum: Tkinter
Thema: mainloop wird bei eigenem Thread nicht gestartet
Antworten: 5
Zugriffe: 1459

Re: mainloop wird bei eigenem Thread nicht gestartet

GUI + multithreading = Geht normalerweise nicht.

Was nicht heisst, dass du nicht multiple threads in deinem Programm haben kannst. Aber der mainloop muss im main-thread sein (meistens, ausnahmen, regel, bilde einen satz), und du musst Timer oder Events benutzen. Tkinter kann nur ersteres, benutze ...
von moccajoghurt
Dienstag 31. Juli 2012, 22:02
Forum: Tkinter
Thema: Größe von Canvas wird bei Objektorientierung nicht erkannt
Antworten: 3
Zugriffe: 1052

Re: Größe von Canvas wird bei Objektorientierung nicht erkan

Glaube ich nicht. Da muss was anderes passieren zwischendurch. Versuch doch mal bitte, minimal lauffaehige Code-Beispiele fuer beide Faelle zu produzieren.
Das dachte ich eigentlich auch, aber ich habe absolut nichts gefunden. Es ist leider zuviel Code, um es hier zu posten, da will sich keiner ...
von moccajoghurt
Dienstag 31. Juli 2012, 22:00
Forum: Tkinter
Thema: mainloop wird bei eigenem Thread nicht gestartet
Antworten: 5
Zugriffe: 1459

mainloop wird bei eigenem Thread nicht gestartet

Hi,
folgender Code funktioniert bei mir nicht wie beabsichtigt:

class loading_bar():

def __init__(self):
self.window = Tkinter.Tk()
self.bar = Progressbar(self.window, length=200)

self.bar.pack(expand=True, fill=Tkinter.BOTH)


t = threading.Thread(target=self.start_bar)
t.start ...