Hallo Trundle,
danke das du dir nochmal die Mühe gemacht hast mir den Sachverhalt zu erklären. Ich bin gestern morgen auf die Lösung gekommen. Hatte aber bis jetzt leider noch keine Gelegenheit dir das mit zuteilen (kennst ja vielleicht diesen Osterwahn
).
Ich verwende jetzt doch einen Thread aber ich habe eine after_search Methode eingebaut, die auch noch als Wahrheitsabfrage beim lambda mit rein kommt.
Hier mal die Lösung meines Problems
Code: Alles auswählen
def on_search(self, data):
text = self.search_entry.get_text()
self.aur.clear_information()
search = Thread(target=self.aur.search, args=[text])
search.start()
self.rider = gobject.timeout_add(100, lambda:self.bar_searching() or search.isAlive() or self.after_search())
def after_search(self):
if self.aur.is_package():
self.on_information()
else:
self.no_pack_dialog()
self.bar_done()
gobject.source_remove(self.rider)
So funktionierts jetzt einwandfrei.
Ich danke dir nochmal vielmals für deine Mühe mir die Dinge zu erklären. Aber manchmal hat man einfach ein Problem in das man sich verrennt, wo man den Wald vor lauter Bäumen nicht sieht.
Gruß
Treehouse