QMessageBox中,怎么区分触发了哪个按钮

`
//在文档中是这样示例的
For example,

QMessageBox msgBox;

QPushButton *connectButton = msgBox.addButton(tr("Connect"), QMessageBox::ActionRole);

QPushButton *abortButton = msgBox.addButton(QMessageBox::Abort);

msgBox.exec();

if (msgBox.clickedButton() == connectButton) {

// connect

} else if (msgBox.clickedButton() == abortButton) {

// abort

}`

但是我的代码会提示 if (msgBox.clickedButton() == connectButton) 这个部分类型不匹配,前边是抽象基类,
请问应当怎样完成安全的转换?或者有没有其他方法区分触发了哪个按钮?

阅读 3.2k
1 个回答

具体原因不详,但是找到了出问题的表面原因---没有添加<QPushButton>,未添加之前也能用,除了上面所提这一点没别的毛病,为什么没有头文件也能用我也不知道

之前的头文件是:

#include <QFile>
#include <QFileInfo>
#include <QFileDialog>
#include <QMessageBox>
#include <QTextStream>
#include <QCloseEvent>
#include <QApplication>

添加头文件<QPushButton>之后上述毛病就好了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题