QDialog执行accepted() accept()不退出

博主在编写QT对话框程序时遇到一个困扰,两个看似相同的对话框,一个能正常退出,另一个却无法关闭。问题出在将accept()误写成了accepted()。QT助手解释,accept()是隐藏并设置结果为Accepted的虚拟槽,而accepted()则是当用户接受对话框时发出的信号。修正代码后问题得到解决。博客提醒开发者注意此类细节,避免不必要的错误。
摘要由CSDN通过智能技术生成

最近写QT对话框程序,发现一个奇怪的现象,明明是两个相同的对话框,点击了确认按钮,一个正常退出,一个怎么都不退出!

我很奇怪,为什么accepted()之后不退出!

代码如下:

经过对比,我发现原来我犯了个愚蠢的错误!我把 accept()函数写成了accepted(),实际上accepted()是个信号!

来自qt助手里的解释:
(1) QDialog::Accepted : 模态对话框的返回值;
(2) [virtual slot] void QDialog::accept() : 隐藏模态对话框并将结果代码设为Accepted;
(3) [signal] void QDialog::accepted() : 当用户接受对话框或通过使用 QDialog::Accepted 参数调用 accept() 函数或者 done() 函数时,会发送此信号.

修改之后,问题解决!

 

原谅我!犯了这个低级错误!

谨此分享给有类似经历的小伙伴,免得以为遇到奇怪的问题!

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值