0

私は次のコードを持っています:

クラスDateDelegate(QtGui.QStyledItemDelegate):

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

(...)

クラスMainWindow(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 に答える