2012-11-03 100 views
1

我有一个简单的应用程序,它在QTableView中显示来自sqlite数据库的表。一列表用于存储日期。我想为用户提供简单的方法来修改此列中的日期。我已经重新实现的QtSql.QSqlTableModeldata方法来改变QVariant类型QDate在QTableView中显示和编辑日期

class Model(QtSql.QSqlTableModel): 
    [...] 

    def data(self, index, role=QtCore.Qt.DisplayRole): 
     if index.column() == 3: 
      return super(Model, self).data(index, role).toDate() 
     return super(Model, self).data(index, role) 

    [...] 

这种变化之后,我得到了列:

date column

但用户不具有可能性有空日期。我该如何解决这个问题?

是否可以有日历弹出而不是此日期编辑?我应该使用委托还是有其他办法?如果委托是最好的方式,如何为单个QTableView列设置委托?

回答

0

您应该使用委托来提供自定义编辑器小部件。 QTableView::setItemDelegateForColumn方法可以帮到你qdoc