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

本文探讨了一个程序中QDialog窗口按回车关闭的困扰,涉及强焦点策略、按键识别问题及解决方案。作者逐步揭示了如何设置focusPolicy以解决Qt对话框中回车键接收不到的问题,并提到了不同按键的区别。

2086

被折叠的 条评论
为什么被折叠?



