On Wednesday 11 May 2011, 11:13:24 Adrian Casey wrote: > I want to connect the returnPressed() event to a QSpinBox widget but > it is not working. I use the same approach with a QComboBox and it > works. I'm using Qt 4.7.0 and PyQt on Kubuntu 10.10. > > Here is a simple form containing a combobox and a spinbox. Only the > combobox registers the returnPressed event. > > Can anyone tell me why the spinbox does not see the returnPressed > event?
>From a cursory look, I would call this a Qt bug. Obviously, they handle the keyEvent for the return key in some way (by selecting the text), but forget to emit the signal, nor call the QLineEdit base class event method. A look into the Qt source would clarify things and often gives an idea for a work around. As a starter, you could install some kind of event filter on the lineEdit widget and emit the signal yourself. Pete > #!/usr/bin/python > > # simple.py > > import sys > from PyQt4 import QtGui > def do_it(): > print 'Return pressed!' > > app = QtGui.QApplication(sys.argv) > > widget = QtGui.QWidget() > widget.resize(250, 150) > widget.setWindowTitle('Signal Test') > layout = QtGui.QBoxLayout(2, widget) > cb = QtGui.QComboBox(widget) > cb.setEditable(True) > sb = QtGui.QSpinBox(widget) > layout.addWidget(sb) > layout.addWidget(cb) > cb.lineEdit().returnPressed.connect(do_it) > sb.lineEdit().returnPressed.connect(do_it) > widget.show() > > sys.exit(app.exec_()) > _______________________________________________ > PyQt mailing list PyQt@riverbankcomputing.com > http://www.riverbankcomputing.com/mailman/listinfo/pyqt _______________________________________________ PyQt mailing list PyQt@riverbankcomputing.com http://www.riverbankcomputing.com/mailman/listinfo/pyqt