0

我有以下代码:

类 DateDelegate(QtGui.QStyledItemDelegate):

def createEditor(self, parent, option, index):
    return QtGui.QCalendarWidget(parent)

(...)

类主窗口(QMainWindow):

def __init__(self, parent=None):

(...)

    self.liste_Produits = QtGui.QTableView()
    self.ProduitsModel = QtSql.QSqlTableModel(self)
    self.liste_Produits.setModel(self.ProduitsModel)
    self.liste_Produits.setItemDelegateForColumn(3,DateDelegate(self))

问题是日历小部件仍然包含在要编辑日期的单元格中。如何让日历小部件显示为一种模式对话框,例如在表格视图顶部而不是表格单元格内?

提前感谢您的意见!

4

1 回答 1

1

太简单了:在createEditor方法中,返回一个子类QDateEdit小部件,定义为:

class TableCalendarWidget(QtGui.QDateEdit):

    def __init__(self, parent = None):
        super(TableCalendarWidget, self).__init__(parent)
        self.setCalendarPopup(True)

而已!

于 2012-09-25T13:46:37.767 回答