• 5303阅读
  • 5回复

[提问]QMessageBox自定义快捷键 [复制链接]

上一主题 下一主题
离线horizonm
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-10
QmessageBox默认是通过Enter、Space、Esc都可以响应的,但是现在指定的设备上只有固定的按钮(如F1-F12),没有前述的3个按键。如何用这些按钮响应QMessageBox?
QMessageBox::oK这些默认按钮是否有办法设置shortCut?
十分感谢!!


注:
尝试重写QMessageBox的keyEvent,但不知道该写在哪里。。。
离线xlqwe

只看该作者 1楼 发表于: 2013-07-11
你可以这样设置
widget->setShortcutAutoRepeat(widget->grabShortcut(QKeySequence(“F1”)));
然后监听QEvent::shortCut事件

没试过重写keyPressEvent能不能监听到,楼主可以试一试
离线soeasy

只看该作者 2楼 发表于: 2013-07-12
子类化QMessageBox, 就是自己重新写一个类。 继承QMessageBox ,在重写keyevent;
离线XChinux

只看该作者 3楼 发表于: 2013-07-12
参照QDialog::exec()方法的实现,从QMessageBox派生,重新实现下exec()方法.
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线jdwx

只看该作者 4楼 发表于: 2013-07-12
自己做一个对话框不就成了。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线soeasy

只看该作者 5楼 发表于: 2013-07-12
回 4楼(jdwx) 的帖子
这个方法最科学。~
快速回复
限100 字节
 
上一个 下一个