Hi all, I'm using PyQt 3.3.x on Windows XP, and my task today is to disable mouse-wheel events for QSpinBoxes. Specifically, it's in a scrolling view, and I want scroll-wheel events to scroll the whole pane, not change the QSpinBox value.
My first idea was to override wheelEvent() in a subclass -- I did this for QComboBox successfully -- but this didn't work for QSpinBoxes. So I emailed the Qt folks, and they kindly responded with a workaround: override eventFilter(), and catch wheel-events there. I tried this in my PyQt3, and it works if your pointer is over the QLineEdit part of the QSpinBox. Unfortunately, if your pointer is over the 1-px border on the top/left/bottom sides, or over the little arrows on the right side, the mousewheel still does its normal thing. I can't figure out how to receive those events: they don't call either eventFilter() or wheelEvent(). The Qt guy claimed, however, that it works correctly (with the mouse anywhere) in Qt, but he hasn't tried PyQt. I haven't confirmed this. (Apologies. C++ on Windows is really not my forte.) They also told me that it's possible to simply override wheelEvent() in Qt 4, as expected. If it turns out the easiest way to fix this in PyQt3 is Really Hard, that's good incentive to try PyQt4. :-) Is this a limitation of PyQt3? And regardless of whose fault it may be, is there a workaround? Thanks! - Ken _______________________________________________ PyKDE mailing list [email protected] http://mats.imk.fraunhofer.de/mailman/listinfo/pykde
