在QTableView中显示和编辑日期

时间:2012-11-03 00:23:49

标签: python qt pyqt pyside

我有简单的应用程序,它在QTableView中显示来自sqlite数据库的表。一列表用于存储日期。我想为用户提供简单的方法来修改此列中的日期。我重新实现了data QtSql.QSqlTableModel方法,将QVariant类型更改为QDate

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列设置委托?

1 个答案:

答案 0 :(得分:0)

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