1

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

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)

    [...]

进行此更改后,我得到了专栏:

日期栏

但用户不可能有空日期。我该如何解决?

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

4

1 回答 1

0

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

于 2012-11-03T12:24:24.403 回答