Re: [PyQt] Crash
Yay. Crash is gone. Thanks, Christian On Oct 21, 2009, at 12:54 AM, Phil Thompson wrote: On Tue, 20 Oct 2009 16:28:41 -0700, Christian Caron wrote: I still get the following with OSX 10.6.1, Qt 4.5.3, SIP 1015, PyQt 1014. I would love to be able to give code to reproduce but it can't make it crash consistently. The same code base never crashes on Ubuntu 9.04. Any idea? Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0041 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 QtCore 0x00010246911e QMutex::lock () + 14 1 QtCore 0x00010255b2b0 QCoreApplication::postEvent(QObject*, QEvent*, int) + 96 2 QtCore.so 0x0001031db69a PyQtProxy::unislot(void**) + 134 3 QtCore.so 0x0001031db773 PyQtProxy::qt_metacall(QMetaObject::Call, int, void**) + 119 4 QtCore 0x00010256a183 QMetaObject::activate(QObject*, int, int, void**) + 675 5 QtCore 0x0001025a5cfd QSocketNotifier::activated(int) + 45 6 QtCore 0x00010257252b QSocketNotifier::event(QEvent*) + 539 7 QtCore.so 0x00010314c815 sipQSocketNotifier::event(QEvent*) + 77 8 QtGui 0x000101a073ed QApplicationPrivate::notify_helper(QObject*, QEvent*) + 189 9 QtGui 0x000101a0e05e QApplication::notify(QObject*, QEvent*) + 238 Try the current PyQt snapshot. Phil ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[PyQt] Crash
I still get the following with OSX 10.6.1, Qt 4.5.3, SIP 1015, PyQt 1014. I would love to be able to give code to reproduce but it can't make it crash consistently. The same code base never crashes on Ubuntu 9.04. Any idea? Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0041 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 QtCore 0x00010246911e QMutex::lock() + 14 1 QtCore 0x00010255b2b0 QCoreApplication::postEvent(QObject*, QEvent*, int) + 96 2 QtCore.so 0x0001031db69a PyQtProxy::unislot(void**) + 134 3 QtCore.so 0x0001031db773 PyQtProxy::qt_metacall(QMetaObject::Call, int, void**) + 119 4 QtCore 0x00010256a183 QMetaObject::activate(QObject*, int, int, void**) + 675 5 QtCore 0x0001025a5cfd QSocketNotifier::activated(int) + 45 6 QtCore 0x00010257252b QSocketNotifier::event(QEvent*) + 539 7 QtCore.so 0x00010314c815 sipQSocketNotifier::event(QEvent*) + 77 8 QtGui 0x000101a073ed QApplicationPrivate::notify_helper(QObject*, QEvent*) + 189 9 QtGui 0x000101a0e05e QApplication::notify(QObject*, QEvent*) + 238___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] Crash in sip_api_is_py_method() with PyQt 4.6
I get these errors as well, when patching a bound customEvent. On Oct 13, 2009, at 2:35 PM, Phil Thompson wrote: On Tue, 13 Oct 2009 23:10:32 +0200, Victor Stinner wrote: Hi, A friend told me that there are snapshots. So I tested the last snapshot and the sip_api_is_py_method()'s crash is still present. But the other bug (methods redefined in Python) is different: I get an error on the number of arguments. It depends on what your application is doing. Is it monkey patching a bound method or an unbound method? Phil ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] PyQt & Twisted
Great! Using this reactor with the latest PyQt snapshot, I don't get the crash anymore! I not sure why but with this reactor, closing the last window doesn't close the application. Ctrl-Q works fine and is the only way I can quit a GUI app. I made sure that quitLastWindowClosed is set. The Signal lastWindowClosed is not emitted either. Any idea? On the mac, running the following code and closing the window doesn't quit the application: from qt4reactor import install; from PyQt4.QtCore import * from PyQt4.QtGui import * app = QApplication([]) install() if __name__ == '__main__': widget = QWidget() widget.show() from twisted.internet import reactor reactor.run() On Oct 9, 2009, at 9:05 PM, Glenn Tarbox, PhD wrote: You may want to try this reactor: https://launchpad.net/qt4reactor I've just seen some other traffic on this topic... I'll dig into it a bit more this weekend -glenn On Fri, Oct 9, 2009 at 3:40 PM, Christian Caron wrote: I used to have this crash rather infrequently but it got more frequent when I moved to PyQt 4.6 / Snow Leopard. Configuration - Mac OSX 10.6.1 Qt 4.5.3 sip-4.9.1-snapshot-20091007 PyQt-mac-gpl-4.6.1-snapshot-20091007 Crash --- My investigation so far shows that PyQtProxy::unislot deletes memory that was already deleted (in attempting to self destruct). Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0028 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 QtCore.so 0x0001030db619 PyQtProxy::unislot(void**) + 133 1 QtCore.so 0x0001030db6f5 PyQtProxy::qt_metacall(QMetaObject::Call, int, void**) + 119 2 QtCore 0x0001005c1183 QMetaObject::activate(QObject*, int, int, void**) + 675 3 QtCore.so 0x00010302ae97 sipQTimer::timerEvent(QTimerEvent*) + 77 4 QtCore 0x0001005bf19e QObject::event (QEvent*) + 446 5 QtCore.so 0x00010302ae2d sipQTimer::event(QEvent*) + 77 6 QtGui 0x0001019fd3ed QApplicationPrivate::notify_helper(QObject*, QEvent*) + 189 7 QtGui 0x000101a0405e QApplication::notify(QObject*, QEvent*) + 238 8 QtGui.so 0x00010136e1d1 sipQApplication::notify(QObject*, QEvent*) + 95 9 QtCore 0x0001005aec3c QCoreApplication::notifyInternal(QObject*, QEvent*) + 124 Repro --- Using the qt4reactor found here: http://twistedmatrix.com/trac/browser/sandbox/therve/qt4reactor.py?rev=22736&format=txt You may need to run the program a few times for it to crash. import qt4reactor qt4reactor.install() # Control-C from twisted.internet import reactor import signal; signal.signal(signal.SIGINT, lambda *args:reactor.stop ()) # Get web page. from twisted.web import client url = 'http://www.google.com' client.getPage(url) reactor.run() ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt -- Glenn H. Tarbox, PhD || 206-274-6919 || gl...@tarbox.org - xmpp || ghtdak - aim,jabber,IRC,yahoo ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[PyQt] PyQt & Twisted
I used to have this crash rather infrequently but it got more frequent when I moved to PyQt 4.6 / Snow Leopard. Configuration - Mac OSX 10.6.1 Qt 4.5.3 sip-4.9.1-snapshot-20091007 PyQt-mac-gpl-4.6.1-snapshot-20091007 Crash --- My investigation so far shows that PyQtProxy::unislot deletes memory that was already deleted (in attempting to self destruct). Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0028 Crashed Thread: 0 Dispatch queue: com.apple.main-thread Thread 0 Crashed: Dispatch queue: com.apple.main-thread 0 QtCore.so 0x0001030db619 PyQtProxy::unislot(void**) + 133 1 QtCore.so 0x0001030db6f5 PyQtProxy::qt_metacall(QMetaObject::Call, int, void**) + 119 2 QtCore 0x0001005c1183 QMetaObject::activate(QObject*, int, int, void**) + 675 3 QtCore.so 0x00010302ae97 sipQTimer::timerEvent(QTimerEvent*) + 77 4 QtCore 0x0001005bf19e QObject::event (QEvent*) + 446 5 QtCore.so 0x00010302ae2d sipQTimer::event (QEvent*) + 77 6 QtGui 0x0001019fd3ed QApplicationPrivate::notify_helper(QObject*, QEvent*) + 189 7 QtGui 0x000101a0405e QApplication::notify(QObject*, QEvent*) + 238 8 QtGui.so 0x00010136e1d1 sipQApplication::notify(QObject*, QEvent*) + 95 9 QtCore 0x0001005aec3c QCoreApplication::notifyInternal(QObject*, QEvent*) + 124 Repro --- Using the qt4reactor found here: http://twistedmatrix.com/trac/browser/sandbox/therve/qt4reactor.py?rev=22736&format=txt You may need to run the program a few times for it to crash. import qt4reactor qt4reactor.install() # Control-C from twisted.internet import reactor import signal; signal.signal(signal.SIGINT, lambda *args:reactor.stop()) # Get web page. from twisted.web import client url = 'http://www.google.com' client.getPage(url) reactor.run()___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] ANN: PyQt v4.6 and SIP v4.9 Released
Typo indeed. Thanks! Sent from my iPhone On Sep 29, 2009, at 1:53 AM, Phil Thompson wrote: On Mon, 28 Sep 2009 12:59:52 -0700, Christian Caron wrote: I just upgraded and I get problems patching at the instance level. I used to patch my own 'customEvent' on the QApplication at the instance level. This doesn't work anymore. Patching still works at the class level. The following code illustrates this: from PyQt4.QtCore import * from PyQt4.QtGui import * class App(QApplication): def customEvent(self, event): print 'inherited', event if __name__ == '__main__': def classPatch(self, event): print 'classPatch', event def instancePatch(event): print 'instancePatch', event # This still works # App.customEvent = classPatch app = App([]) # This used to work but doesn't anymore. # app.customEvent = instancePatch QApplication.sendEvent(app, QEvent(1000)) widget = QWidget() widget.show() app.exec_() Fixed in tonight's SIP snapshot. However, your instance patch needs a self argument. If that worked before (and it's not a typo) then it was a bug. Phil ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] ANN: PyQt v4.6 and SIP v4.9 Released
I just upgraded and I get problems patching at the instance level. I used to patch my own 'customEvent' on the QApplication at the instance level. This doesn't work anymore. Patching still works at the class level. The following code illustrates this: from PyQt4.QtCore import * from PyQt4.QtGui import * class App(QApplication): def customEvent(self, event): print 'inherited', event if __name__ == '__main__': def classPatch(self, event): print 'classPatch', event def instancePatch(event): print 'instancePatch', event # This still works # App.customEvent = classPatch app = App([]) # This used to work but doesn't anymore. # app.customEvent = instancePatch QApplication.sendEvent(app, QEvent(1000)) widget = QWidget() widget.show() app.exec_() On Sep 26, 2009, at 11:13 AM, Phil Thompson wrote: PyQt v4.6 and SIP v4.9 have been released and are available from the usual places. This more or less completes the development identified in the (now discarded) roadmap. In particular it means that QString and QVariant can be made to disappear completely. This is the default if you are using Python v3. Python v2 retains the old behaviour (for obvious compatibility reasons) but you can select the new behaviour using the new sip.setapi() call. All the examples will still run under Python v2 and v3. See the respective NEWS files for the details. Phil ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] Stacking QWidgets vertically?
What was missing from the QSplitter to achieve what you are looking for? On Sep 20, 2009, at 8:45 PM, Kurt Schwarz wrote: On Sun, Sep 20, 2009 at 11:38 PM, Christian Caron wrote: Maybe a QSplitter? On Sep 20, 2009, at 8:33 PM, Kurt Schwarz wrote: What would be the best way to do something like this: http://img15.imageshack.us/img15/5707/badpaintskills.png Where all the teal boxes are the same width but their height varies and they go from the bottom up. I have tried using a QVBoxLayout but it just spaced each of them out evenly. Is there anyway to do this using QLayout, or will I have to just use x, y cords for each of the QWidgets? ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt Humm I tried using a QSplitter and it didn't do quite what I was looking for. I just noticed the FlowLayout example that comes with PyQt and I'm going to try and create something similar to that. ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] Stacking QWidgets vertically?
Maybe a QSplitter? On Sep 20, 2009, at 8:33 PM, Kurt Schwarz wrote: What would be the best way to do something like this: http://img15.imageshack.us/img15/5707/badpaintskills.png Where all the teal boxes are the same width but their height varies and they go from the bottom up. I have tried using a QVBoxLayout but it just spaced each of them out evenly. Is there anyway to do this using QLayout, or will I have to just use x, y cords for each of the QWidgets? ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] QtSQL cant connect using MySQL driver
Phil has control over PyQt. I'm talking about compiling mysql support into Trolltech's err I mean Nokia's Qt. On Sep 7, 2009, at 3:39 PM, Scott Ballard wrote: According to Phil, he added MySQL support to the last build... >>I'm just wondering why the MySQL drivers can't be compiled into the PyQt Windows binary installer, instead we have to compile our own Qt/PyQt with the >>MySQL and/or PostGres drivers. >They are in the current installers (for Python v2.6 and v3.1). I'm not >updating the installer for Python v2.5. >Phil Christian Caron wrote: By default, QtSql does't have support for mysql. You have to compile it by specifying the right options when ./configuring Qt for build. Christian On Sep 7, 2009, at 3:29 PM, Scott Ballard wrote: Hey list, Sorry to ask about this again, but I never got it working and was pulled off onto something else. Now I have time to look into it again. I can't seem to get the qmysql driver to work with the QtSQL module in PyQt 4.5.4 and Python 2.6.2 on Windows XP SP2. What exactly is required to make a connection to a MySql database from PyQt? I have Wamp installed, running MySql and am able to connect to it using the MySQLdb module. The qmysql4.dll is in the Python26\Lib\site-packages\PyQt4\plugins \sqldrivers. Here's the important output: 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] PYQT_VERSION_STR: 4.5.4 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC QPSQL7 QPSQL Has anyone gotten this working? Are there any 3rd party DLLs that need to be installed? Any hints would be welcome! Cheers, -Scott ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] QtSQL cant connect using MySQL driver
By default, QtSql does't have support for mysql. You have to compile it by specifying the right options when ./configuring Qt for build. Christian On Sep 7, 2009, at 3:29 PM, Scott Ballard wrote: Hey list, Sorry to ask about this again, but I never got it working and was pulled off onto something else. Now I have time to look into it again. I can't seem to get the qmysql driver to work with the QtSQL module in PyQt 4.5.4 and Python 2.6.2 on Windows XP SP2. What exactly is required to make a connection to a MySql database from PyQt? I have Wamp installed, running MySql and am able to connect to it using the MySQLdb module. The qmysql4.dll is in the Python26\Lib\site-packages\PyQt4\plugins \sqldrivers. Here's the important output: 2.6.2 (r262:71605, Apr 14 2009, 22:40:02) [MSC v.1500 32 bit (Intel)] PYQT_VERSION_STR: 4.5.4 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC3 QODBC QPSQL7 QPSQL Has anyone gotten this working? Are there any 3rd party DLLs that need to be installed? Any hints would be welcome! Cheers, -Scott ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[PyQt] Snow Leopard
I can't seem to compile PyQt on Snow Leopard. I installed Snow Leopard with the xcode that came with the disk. Built Qt 4.5.2: ./configure -opensource -framework -no-qt3support -fast Built SIP 4.8.2 PyQt 4.5.4: When I run python configure.py it determines that only PyQt4.QtCore will be built. I looked in configure.py and all the other cfgtext_* fail to build with the following error message: ccaron$ g++ -DQT_NO_DEBUG -DQT_GUI_LIB -I. -I/usr/local/Trolltech/ Qt-4.5.2/mkspecs/default -I/usr/local/Trolltech/Qt-4.5.2/lib/ QtGui.framework/Headers -I/usr/local/Trolltech/Qt-4.5.2/include -pipe - Os -w cfgtest_QtGui.cpp -o cfgtest_QtGui -F/usr/local/Trolltech/ Qt-4.5.2/lib -L/usr/local/Trolltech/Qt-4.5.2/lib - headerpad_max_install_names -framework QtGui -L/usr/local/Trolltech/ Qt-4.5.2/lib -F/usr/local/Trolltech/Qt-4.5.2/lib -framework Carbon - framework AppKit -framework QtCore -L/usr/local/Trolltech/Qt-4.5.2/lib -lz -lm -framework ApplicationServices In file included from /usr/local/Trolltech/Qt-4.5.2/include/QtGui/ qmatrix.h:46, from /usr/local/Trolltech/Qt-4.5.2/include/QtGui/ qbrush.h:49, from /usr/local/Trolltech/Qt-4.5.2/include/QtGui/ qpalette.h:47, from /usr/local/Trolltech/Qt-4.5.2/lib/ QtGui.framework/Headers/qwidget.h:48, from cfgtest_QtGui.cpp:1: /usr/local/Trolltech/Qt-4.5.2/include/QtGui/qregion.h: In member function ‘OpaqueRgnHandle* QRegion::handle(bool) const’: /usr/local/Trolltech/Qt-4.5.2/include/QtGui/qregion.h:158: error: ‘toQDRgn’ was not declared in this scope What am I doing wrong?___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[PyQt] QWidget.adjustSize
Hello, I often find myself doing things like: self.layout().addWidget(self.widget) QTimer.singleShot(1, self.adjustSize) It seems I need to let the event loop finish doing its business before attempting to adjust the size of the containing widget. I'm guessing that the child widget aren't yet visible and thus their sizeHints are getting ignored. Anyway, is there a cleaner way of achieving the same thing? The delayed update feels like a kludge to me. Thanks, Christian___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
Re: [PyQt] split a layout in half to add a widget at runtime.
That's a good way to do it but be careful to manage the parents of your widgets properly or you'll get strange behavior. On Aug 27, 2009, at 8:58 AM, Peter Shinners wrote: I do not have code in an easy to show format. Essentially you have a top level widget that is a QSplitter with two children. When you want to split any of the internal panels, replace that panel with another QSplitter, move the panel into the new child splitter, and add an empty or default panel on the other side of the splitter. -Original Message- From: pyqt-boun...@riverbankcomputing.com [mailto:pyqt-boun...@riverbankcomputing.com ] On Behalf Of tabish--> Sent: Thursday, August 27, 2009 1:38 AM To: pyqt@riverbankcomputing.com Subject: RE: [PyQt] split a layout in half to add a widget at runtime. Dear Peter Shinners-2 can you please help me with a code of it coz i am unable to go about with the splitters. please help me out. - Peter Shinners-2 wrote: These are pictures of Houdini btw, not Maya. I've written this type of interface a couple times before. My best success was moving away from "nested splitters" and moving to a "flat" layout of a bunch of panel widgets. This required me to handle all the dragging myself, but that was a fairly easy part to write. Then I could do things like drag at the intersections to move in both directions. Best of all it freed my layout from each panel having an arbitrary "depth", which will imply small restrictions on the types of splits you can make. -Original Message- From: pyqt-boun...@riverbankcomputing.com [mailto:pyqt-boun...@riverbankcomputing.com] On Behalf Of tabish--> Sent: Wednesday, August 26, 2009 12:03 AM To: pyqt@riverbankcomputing.com Subject: [PyQt] split a layout in half to add a widget at runtime. split a layout in half to add a widget at runtime. it should work similar to split ofr Qdockwiget. please check the image below to get an idea about it, please help me out i am stucked. this is before the split of the window, and please note that all the widget are tabwidget http://www.nabble.com/file/p25147662/maya_before.png http://www.nabble.com/file/p25147662/maya_after.png this is after the split. -- View this message in context: http://www.nabble.com/split-a-layout-in-half-to-add-a-widget-at-runtime.-tp25147662p25147662.html Sent from the PyQt mailing list archive at Nabble.com. ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt -- View this message in context: http://www.nabble.com/split-a-layout-in-half-to-add-a-widget-at-runtime.-tp25147662p25167264.html Sent from the PyQt mailing list archive at Nabble.com. ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt
[PyQt] Accessing the underlying Qt object in a C-API extension.
Hi All, First things first: I think PyQt is awesome. Now onto the question. I sometimes have small pieces of code that I would like to speed up using a C-API extension. I'd like to be able to pass PyQt objects to an extension, and once inside dig up the internal Qt pointer... Is this a difficult (or possible at all) thing to do? I looked through the archives before posting but failed to find something relevant. Sample code would be great. Thanks, Christian ___ PyQt mailing listPyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt