Δημοσιεύτηκε: 06 Οκτ 2011, 01:37
από parenthesis
Χμ, δηλαδή αν κατάλαβα καλά, εννοείς να κάνω κάτι τέτοιο :

Κώδικας: Επιλογή όλων
#! /usr/bin/env python

import pygtk
pygtk.require('2.0')
import gtk
import threading
import thread
from multiprocessing import Process, Event
import time
import gobject

def copying () :
print("Copying...")
time.sleep(1)
print("Copying...")
time.sleep(1)
print("Copying...")
time.sleep(1)
print("Copying...")
time.sleep(1)

return True

class Synchronaiz() :

def __init__(self) :
builder = gtk.Builder()
builder.add_from_file("synchronaiz.glade")

self.mainwindow = builder.get_object("mainwindow")
self.donewindow = builder.get_object("donewindow")
self.statuslabel = builder.get_object("statuslabel")
self.spinner = builder.get_object("spinner")
builder.connect_signals(self)

def on_window_destroy(self, widget, data=None) :
gtk.main_quit()

def on_synchbutton_clicked(self, widget, data=None) :

def startSpinner() :
def Spin():
self.statuslabel.set_text(u'Synching... It may take a few minutes.')
self.spinner.show()
self.spinner.start()
print("spinner running.")

spin = Process(target=Spin(), args=())
spin.start()
spin.terminate()

def startCopying(event) :
def Cop(event):
isdone = False
isdone = testing()
print("testing returned.")
if (isdone == True) :
event.set()
print("event set.")

cop = Process(target=Cop, args=(event, ))
cop.start()

def endAll() :
self.mainwindow.hide()
self.donewindow.show()

def checkCopying(event, killEvent) :
def Check(event):
print("checkCopying entered.")
event.wait()
print("Copying is done.")
endAll()
print("killEvent set.")

t = Process(target=Check, args=(event, ))
t.start()

event = Event()
event.clear()
killEvent = Event()
killEvent.clear()

gobject.timeout_add(500, startSpinner)
gobject.timeout_add(600, startCopying, event)

gobject.timeout_add(700, checkCopying, event)

if __name__ == '__main__' :
synch = Synchronaiz()
synch.mainwindow.show()
gtk.main()


Φαίνεται να δουλεύει, αλλά προς το τέλος μου πετάει :
python: ../../src/xcb_io.c:221: poll_for_event: Ο ισχυρισμός (((long) (event_sequence) - (long) (dpy->request)) <= 0)' απέτυχε.
synchronaiz.py: Fatal IO error 11 (Ο πόρος είναι προσωρινά μη διαθέσιμος) on X server :0.0.
Ακυρώθηκε