我已經創建了一個日期輸入的子類化QLineEdit和QCalendar。當接收到mousePressEvent時,日曆顯示在QLineEdit的底部。問題在於隱藏該日曆。我已經重寫了focusOutEvent,因爲當用戶點擊其他地方時,我想讓它關閉。但是這個事件根本沒有收到,我通過在其中放置一個斷點來證實這一點,它從來沒有停止過。我已經把調用close()
它:QWidget focusOutEvent沒有收到
class MyCalendarWidget : public QCalendarWidget
{
Q_OBJECT
public:
void focusOutEvent(QFocusEvent* e)
{
close();
}
};
當我關閉它從我的DateLineEdit,它按預期工作:
void DateLineEdit::mousePressEvent(QMouseEvent *)
{
if (calendar->isVisible())
{
calendar->close();
}
else
{
calendar->move(mapToGlobal(QPoint(0, height())));
calendar->show();
}
}
就是這樣,謝謝。 – 2011-04-07 16:49:19