2014-11-19 2 views
0

У меня есть QDateEdit в форме в Qt, и я хочу, чтобы на кнопке нажмите QDateEdit возвращается в прежнее состояние. Как это может быть сделано?QDateEdit вернуться в предыдущее состояние на кнопке нажмите в Qt C++

+0

Вы сохраняете свое значение, когда необходимо, подключите 'SLOT' к триггеру кнопки и установите сохраненное значение – Bowdzone

+0

как сохранить его значение? –

ответ

0

В любой момент состояние QDateEdit (которое на самом деле является специализированным QDateTimeEdit) может быть получено путем вызова его date() method.

Тогда, как уже было сказано, вы должны поместить это значение в QDate переменную своего класса, а затем создать слот, который вы подключаете к кнопке мыши, и который затем вызывает setDate установить QDateEdit назад к этой дате.

Ниже приведен фрагмент кода, который показывает один из способов сделать это.

#ifndef MYDIALOG_H 
#define MYDIALOG_H 

#include <QDialog> 
#include <QHBoxLayout> 
#include <QDateEdit> 
#include <QPushButton> 

class Dialog: public QDialog 
{ 
    Q_OBJECT 

    public: 
    Dialog(QWidget *parent = 0) : QDialog(parent), 
    layout(this), 
    edit(), 
    button("Reset",this) 
     { 
     layout.addWidget(&edit); 
     layout.addWidget(&button); 
     date = edit.date(); 
     connect(&button, SIGNAL(clicked()), this, SLOT(resetTime())); 
     } 

    public slots: 

    void resetTime() 
    { 
    edit.setDate(date); 
    } 

private: 

    QHBoxLayout layout; 
    QDateEdit edit; 
    QPushButton button; 
    QDate date; 

}; 

#endif 

main.cc для полноты

#include <QApplication> 

#include "dialog.h" 

int main(int argc, char** argv) 
{ 
    QApplication app(argc, argv); 
    Dialog dialog; 

    dialog.show(); 

    return app.exec(); 

} 

Позвольте мне знать, если это помогает.

Смежные вопросы