Rob*_*b S 2 qt qcalendarwidget
我正试图让a QDateEdit在允许QCalendarWidget时显示(而不是仅仅点击向下箭头).例如,在我班上的某个地方,我应该可以说:
ui.datepicker.showCalendar()
Run Code Online (Sandbox Code Playgroud)
它应该加载日期选择器正下方的日历.
看起来我需要子类QDateEdit,因为这不起作用:
QDateEdit *de = new QDateEdit();
de->calendarWidget()->show();
Run Code Online (Sandbox Code Playgroud)
当你通过Qt的QDateTimeEdit.cpp源代码时,我也试过发送键盘命令,但似乎我的键盘快捷键被禁用了.
关于我要对子类做什么以使其工作的任何想法?我想的是:
class MyDateEdit : QDateEdit
{
Q_OBJECT
protected:
void mouseEvent(QEvent *event) {
this.calendarWidget().show();
}
};
Run Code Online (Sandbox Code Playgroud)
但唉,似乎也没有编译或正常工作.
我能够自己弄清楚 - 仍然不确定如何让 QDateEdit 正常工作,但我使用了 QLineEdit 并且它适合我的需求。只需将 QCalendarWidget 的“onClick(QDate)”连接到您创建的插槽即可执行以下操作:
setText(date.toString("M/d/yyyy"));
ui->calendar->hide();
Run Code Online (Sandbox Code Playgroud)
然后使用执行“ui->calendar->show();”的“OnFocusIn”事件将事件过滤器添加到 QLineEdit。请参阅:当 Qt 小部件获得焦点时获取通知/事件/信号
| 归档时间: |
|
| 查看次数: |
18827 次 |
| 最近记录: |