1、程序的QDialog窗口按下回车竟然关闭了,感觉跟奇怪,不知道为什么。
2、最后想要通过重写QDialog的keyPressEvent屏蔽调回车键,结果Return和Enter傻傻分不清楚。
3、Return和Enter搞清楚了之后发现键盘事件竟然接收不到回车键。
这就一个问题引出来另外两个问题了,最后才傻傻的搞清楚。
因为QDialog中存在控件的focusPolicy是Qt::StrongFocus,不光导致QDialog的键盘事件接受不到回车键,方向键也接收不到。
QDialog初始化时,设置:
setFocusPolicy(Qt::StrongFocus);
大键盘上的回车键是Qt::Key_Return;
小键盘上的回车键是Qt::Key_Enter;
判断正确就好了。
因为QDialog的窗口中有一个QPushButton,该按钮的点击信号槽连接到窗口关闭操作,而且该按钮的focusPolicy是Qt::StrongFocus。正是因为这哥focusPolicy和该按钮连接的信号槽导致了回车关闭。
关于问题1的解决方案:
害,你说下键不下键