QDateEdit在Qt C ++中单击按钮返回上一状态

时间:2014-11-19 10:06:36

标签: qt

我在Qt中的表单中有QDateEdit,我希望在按钮上单击此QDateEdit返回其先前的状态。怎么办呢?

1 个答案:

答案 0 :(得分:0)

在任何时候,都可以通过调用date() method来检索QDateEdit(实际上是专门的QDateTimeEdit)的状态。

然后,如前所述,您需要将此值放入类的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();

}

如果有帮助,请告诉我。