Currently the app uses python threads, not pyqt threads, could this be the reason?

The only thread I'm having now is a logging function:

       self.setTitleBarText("Trying to login...")
       try:
           if self.OSDBServer._login(username, password) :
               if not username: username = 'Anonymous'
               self.setTitleBarText("Logged as: %s" % username)
elif username: #We try anonymous login in case the normal user login has failed self.setTitleBarText("Error logging as: %s. Logging anonymously..." % username)
               if self.OSDBServer._login("", "") :
                   self.setTitleBarText("Logged as: Anonymous")
               else:
                   self.setTitleBarText("Login: Cannot login.")
       except:
           self.setTitleBarText("Login: ERROR")


The only interaction of the thread with the pyqt GUI is the setTitleBarText where it changes the title of the Main App Window.

Andreas Pakulat wrote:
On 06.07.08 13:16:09, Iván García wrote:
One of my users just reported this bug:

ASSERT failure in QCoreApplication::sendEvent: "Cannot send events to objects owned 
by a different thread. Current thread f74470. Receiver 'MainWindow' (of type 
'QMainWindow') was created in thread 9a7fc0", file kernel/qcoreapplication.cpp, line 
269
Cancelado (core dumped)

How to avoid this problem? Is there a way to fix the problem within the application code?

Yes, don't use sendEvent across threads, use postEvent. This is not 100%
clear in the documentation, except that sendEvent is explained to use
notify() directly. And obviously notify shouldn't be called from a
different thread.

Andreas

_______________________________________________
PyQt mailing list    PyQt@riverbankcomputing.com
http://www.riverbankcomputing.com/mailman/listinfo/pyqt

Reply via email to