在QDateTimeEdit上正确使用.clear()方法

时间:2014-03-19 08:33:42

标签: python pyqt

以下脚本正在创建一个非常简单的GUI,其中只包含QDateTimeEdit和QPushButton(可以运行该脚本):

import sys
import os
from PyQt4 import QtGui
from PyQt4 import *

class SmallGUI(QtGui.QMainWindow):
    def __init__(self):
        super(SmallGUI,self).__init__()
        self.initUI()

    def initUI(self):
        self.setGeometry(300,300,300,300)
        self.setWindowTitle('Sample')

        #Calendar input
        self.MyInput = QtGui.QDateTimeEdit(self)
        self.MyInput.setCalendarPopup(True)
        self.MyInput.setDisplayFormat("dd/MM/yyyy hh:mm")
        self.MyInput.setGeometry(88,25,110,20)
        ###############

        #Clear button
        self.MyButton = QtGui.QPushButton(self)
        self.MyButton.setGeometry(QtCore.QRect(88,65,110,20))
        self.MyButton.setText('Clear date')
        ###############

        QtCore.QObject.connect(self.MyButton,QtCore.SIGNAL("clicked(bool)"),self.clearDate)

        self.show()

    def clearDate(self):
        self.MyInput.clear()

def main():
    app = QtGui.QApplication(sys.argv)
    sampleForm = SmallGUI()
    sys.exit(app.exec_())

if __name__ == '__main__':
    main()

但是,当我单击“清除日期”按钮时,QDateTimeEdit的方法.clear()仅清除前两个值(仅当天),它似乎停在“/”处。我试图阅读该对象的一些文档,但我找不到自己的方式。当按下按钮时,有谁知道如何完全清空输入框?

1 个答案:

答案 0 :(得分:2)

以下代码怎么样?

def clearDate(self):
    self.MyInput.findChild(QtGui.QLineEdit).setText('')

请参阅http://www.riverbankcomputing.com/pipermail/pyqt/2009-February/021753.html