利用Qt的QDateTimeEdit设置起始时间(即开始时间大于结束时间)

利用Qt的QDateTimeEdit设置起始时间(即开始时间大于结束时间)

1.头文件qdatetimeeditpractise.h

#ifndef QDATETIMEEDITPRACTISE_H
#define QDATETIMEEDITPRACTISE_H

#include <QtGui/QWidget>
#include "ui_qdatetimeeditpractise.h"

class QDateTimeEditPractise : public QWidget
{
    Q_OBJECT

public:
    QDateTimeEditPractise(QWidget *parent = 0, Qt::WFlags flags = 0);
    ~QDateTimeEditPractise();

    QDateTimeEdit * endDateTimeEdit;
    QDateTimeEdit * startDateTimeEdit;

    public slots:
        void setStartDateTime();//设置起始时间的范围
        void setEndDateTime();//设置结束时间的范围

private:
    Ui::QDateTimeEditPractiseClass ui;
};

#endif // QDATETIMEEDITPRACTISE_H

2.cpp文件qdatetimeeditpractise.cpp

#include "qdatetimeeditpractise.h"
#include <QDateTimeEdit>
#include <QDebug>

QDateTimeEditPractise::QDateTimeEditPractise(QWidget *parent, Qt::WFlags flags)
    : QWidget(parent, flags)
{
    ui.setupUi(this);
    startDateTimeEdit = ui.startDateTimeEdit;
    endDateTimeEdit = ui.endDateTimeEdit;

    startDateTimeEdit->setDateTime(QDateTime::currentDateTime().addDays(-1));
    endDateTimeEdit->setDateTime(QDateTime::currentDateTime());

    connect(startDateTimeEdit,SIGNAL(dateTimeChanged(QDateTime)),this, SLOT(setEndDateTime()));
    connect(endDateTimeEdit,SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(setStartDateTime()));
}

void QDateTimeEditPractise::setStartDateTime()
{
    startDateTimeEdit->setMaximumDateTime(endDateTimeEdit->dateTime());
}

void QDateTimeEditPractise::setEndDateTime()
{
    endDateTimeEdit->setMinimumDateTime(startDateTimeEdit->dateTime());
}

QDateTimeEditPractise::~QDateTimeEditPractise()
{

}

虽然效果实现出来了,但是无法理解的是:为什么在槽函数中添加了和信号一样的参数后,程序编译报错。例如:connect(startDateTimeEdit,SIGNAL(dateTimeChanged(QDateTime)),this, SLOT(setEndDateTime(QDateTime)));而且信号和槽函数采用引用类型的参数,编译也会报错,例如:connect(startDateTimeEdit,SIGNAL(dateTimeChanged(QDateTime &)),this, SLOT(setEndDateTime(QDateTime)));
我看Qt的帮助文档中的信号函数的参数就是引用类型???本人使用的Qt版本是4.8.6,望各位大神能够给出答案。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值