sto creando lo script in python, che cooperano con bash. Quando imposto tutte le opzioni di ricerca e premo il pulsante Trova, mi piacerebbe apparire la finestra popup con progress bar
, che scompare quando la ricerca sarà completata. Apro popup window
per popup.show()
e nessuna funzione viene eseguita finché non chiudo popup. Quindi come risolvere questo problema?pygtk esecuzione di due finestre, popup e principale
In classe controller:
def search(self, widget):
cmd = "find " + self.model.directory + " -name \"" + self.model.name + "\"" + " -perm -" + str(self.model.mode)
if self.model.type is not None and self.model.type != '':
cmd += " -type " + self.model.type
if self.model.owner is not None:
cmd += " -user " + self.model.owner
if self.model.days is not None:
cmd += " -mtime -" + str(self.model.days)
self.progress = SearcherProgressBar()
output = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
out = output.stdout.read().strip()
array = string.split(out, '\n')
self.list = list()
self.progress.label = "sdsds"
for value in array:
self.add_to_list(value)
#self.progress.popup.destroy() # when I uncomment, popup never appears
self.view.treestore.clear()
self.add_to_tree(self.list, None)
self.view.expand_item.set_sensitive(True)
In classe ProgressBar:
class SearcherProgressBar:
def __init__(self):
self.popup = gtk.Window(gtk.WINDOW_POPUP)
vbox = gtk.VBox()
self.popup.add(vbox)
self.popup.set_size_request(500,100)
self.label = gtk.Label("Searching...")
vbox.pack_start(self.label, True, True, 0)
self.popup.connect("destroy", self.dest)
self.popup.show_all()
def dest(self, widget, data=None):
self.popup.destroy()
return False
rendere il codice [SSCCE - corta, Self Contained, corretta (compilabile), Esempio] (http://sscce.org/). Non possiamo eseguire il codice che hai nella tua domanda. Sono solo frammenti di una parte della tua applicazione. –