Если это будет только кортеж кортежей, то что-то как rows=[map(int, row) for row in rows]
добьется цели. (Существует понимание списка и вызов для отображения (f, LST), который равен [f (a) для в LST], там.)
Оценка не , что Вы хотите сделать, в случае, если существует что-то как __import__("os").unlink("importantsystemfile")
в Вашей базе данных по некоторым причинам. Всегда проверяйте свой вход (если ни с чем иным, интервал исключения () повысит, если Вы плохо ввели).
В зависимости от того, кодируете ли вы все или делаете что-то в дизайнере, установите
editTriggers
на QAbstractItemView :: NoEditTriggers
selectionBehavior
на ] QAbstractItemView :: SelectRows
selectionMode
на QAbstractItemView :: SingleSelection
, если вы хотите, чтобы пользователь выбрал ровно одну строку в объекте tableview, все соответствующие вызовы будут иметь префикс set
например setEditTriggers ()
в конструкторе, вы можете найти эти параметры в разделе AbstractItemView
Отключить бит ItemIsEditable
элемента таблицы. например:
QTableWidgetItem* item = new QTableWidgetItem(...);
...
item->setFlags(item->flags() &= ~Qt::ItemIsEditable);
Попробуйте следующее:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
В идеале вы захотите использовать:
void QAbstractItemView::setItemDelegate ( QAbstractItemDelegate * delegate )
А затем создайте класс, унаследованный от QItemDelegate
, как в в этом примере.
Отредактируйте свой класс так, чтобы
QWidget * QItemDelegate::createEditor ( QWidget * parent, const QStyleOptionViewItem & option, const QModelIndex & index ) const
возвращал NULL
или используйте:
table->setEditTriggers(QAbstractItemView::NoEditTriggers);
Вы также захотите посмотреть
void setSelectionBehavior ( QAbstractItemView::SelectionBehavior behavior )
с параметром: QAbstractItemView :: SelectRows
Для справки: http://doc.trolltech.com/4.5/qtableview.html