QDateEdit验证

时间:2017-06-21 14:13:16

标签: c++ qt

我正在尝试验证两个QDateEdits。我有两个字段<script> $('#poule').change(function () { $.ajax({ type: 'GET', dataType: "html", url : 'search/equipes/', data : { poule_id : document.getElementById('poule').value }, success:function(data){ $('#equipes').html(data); } }); }); </script> startdate,我想确认enddate的最短日期是选定的enddate日期。但是,我想让用户有机会startdate字段为空。 我连接了两个领域

enddate
带有弹出日历的

connect(startDate,SIGNAL(dateChanged(QDate)),endDate,SLOT(setMinDate(QDate))); startDateendDate

那么,这里的问题在哪里?当我点击结束日期时,最小日期可以,但是第二天(fisrt有效日期)显示为蓝色,就像它被选中一样,但是当我点击该日期时弹出关闭和日期没有设置。例如:

当我打开表单时,QDateEdit字段默认为当前日期。后来我点击了startdate字段,最小允许日期是可以接受的另一天,但这个最小允许日期是蓝色标记,当我点击它未设置的日期时。

对不起,如果我的英语很糟糕,我希望你能帮助我。不管怎样,

1 个答案:

答案 0 :(得分:2)

我发现了我的问题所在。我已将广告连接到dateChanged(QDate)信号,因此,默认情况下,QDateEdit会将第一个允许的日期设置为所选日期,因此,如果您再次选择它,则表示未发出信号,结果日期为结果日期它没有设定。我的解决方案是使用editingFinished()信号而不是dateChanged(QDate)信号。我希望有所帮助。问候,