【发布时间】:2017-03-02 16:05:59
【问题描述】:
我有一个 QDateTimeEdit,用户应该选择一个日期。但是,我需要选择每个月的最后一天。因此,例如,如果用户选择 3 月 3 日,我应该将日期设置为 3 月 31 日。
我尝试在dateChanged(const QDate&) 信号的插槽中执行此操作。但是当我调用setDate() 函数时,它会导致插槽再次被调用。
这里是示例代码
connect(m_pDateEdit, SIGNAL(dateChanged(const QDate&)), this, SLOT(OnDateChanged(const QDate&)));
void MyClass::OnDateChanged(const QDate& date)
{
const bool b = m_pDateEdit->blockSignals(true);
// THIS LINE CAUSES TO THIS SLOT TO BE CALLED TWICE
m_pDateEdit->setDate(QDate(date.year(), date.month(), date.daysInMonth()));
CallSomeFunction();
m_pDateEdit->blockSignals(b)
}
我缺少什么吗?有什么想法吗?
感谢您的宝贵时间!
【问题讨论】:
标签: c++ qt signals-slots qt-signals qdatetime