Steve Zatz wrote:
I am new to qt and pyqt but have been using wxPython for a long time.
I am converting a moderately complex application from wxPython to pyqt
and have been impressed with the ease of using pyqt.
Here's my question and I apologize for the verbiage. The ability to
get at the default widget text editor in a QTableWidget appears pretty
limited. You can initiate editing (editItem) but can only indirectly
try to determine if the editor is still open or has been recently
closed. I am using the return key to initiate editing of the cells in
a particular column but the problem is when the user hits the return
key while editing an item. Normal user interface would have that
return key close the editor but since I am trapping for the return the
app tries to open editing on the item that is already being edited and
writes "edit: editing failed" to the console. Now I am redirecting
both stdout and stderr but this message appears to be written by qt
directly to the console and is not going through pyqt. So, sorry for
the longwinded note but any thoughts on either or both of the
following:
1) can that "editing failed" message be trapped somehow and/or
obviously, the warning message is caused by your attempt to override the
default behaviour for initiating editing (which is plaform specific).
but since you didn't post any code, it's hard to suggest what you could
do about it :)
2) is there any straightforward way to know that a QTableWidget item
is in the process of being edited
there are probably several different ways to do this. here's one:
import sys
from PyQt4.QtGui import QApplication, QTableWidget
class TableWidget(QTableWidget):
def __init__(self, rows, columns):
QTableWidget.__init__(self, rows, columns)
def edit(self, index, trigger, event):
if QTableWidget.edit(self, index, trigger, event):
print 'editing:', index.row(), index.column()
return True
return False
if __name__ == '__main__':
app = QApplication(sys.argv)
table = TableWidget(3, 3)
table.resize(350, 150)
table.move(300, 300)
table.show()
sys.exit(app.exec_())
_______________________________________________
PyQt mailing list [email protected]
http://www.riverbankcomputing.com/mailman/listinfo/pyqt