On Mon Aug 23 20:07:26 BST 2010, fpp wrote: > On a hunch I looked at the (Py)Qt documentation for QAction -- which > I'd never had to do before because everything was automated by > Designer/eric4. > > And the strange thing is, if I read correctly, QActions have an > "activate()" method, but no "activated()" signal ? > > Their only signals are: changed(), hovered(), toggled(), > triggered()... the latter being described as "emitted when an action > is activated by the user". Duh.
The activated() signal is a "Qt 3 support member" of QAction: http://doc.qt.nokia.com/latest/qaction-qt3.html This means that it is available if Qt has been built to contain code to support APIs in Qt 3, to help people port applications from Qt 3 to Qt 4. I guess the version of Qt for Maemo doesn't contain this code, so it won't work. > So I changed the slot name to on_actionOpen_triggered(), and sure > enough the code now works both under XP and Maemo... > > So I've found a reason, but not really the cause, and am left with > more questions than I started with: > > - is eric4 wrong about the QAction "activated()" signal ? No, but it really should be generating triggered() instead. > - if so, why does it work under Windows ? The legacy signal is there, and QMetaObject.connectSlotsByName() will find it. > - does it also work under "standard" desktop Linux ? Yes, I think so. > - or is it a specific Qt/PyQt bug in Maemo ? No. I believe the lack of Qt 3 support is intentional. David _______________________________________________ PyQt mailing list [email protected] http://www.riverbankcomputing.com/mailman/listinfo/pyqt
