QMessageBox::warning(this,tr("Error"),
tr("File existed"));
我使用QtCreator for MSVS2012,Win7。 “this”指向一个公共继承自QWizard类的类,编译器输出为
错误C2665:“QMessageBox :: warning”:4个重载中没有一个可以转换所有参数类型 d:\ qt \ qt5.1.0 \ 5.1.0 \ msvc2012_64 \ include \ qtwidgets \ qmessagebox.h(197):可能是“QMessageBox :: StandardButton QMessageBox :: warning(QWidget *,const QString&,const QString& ,QMessageBox提示:: StandardButtons,QMessageBox提示:: StandardButton)” 尝试匹配参数列表“(const newWizard * const,QString,QString)”时
这意味着4个重载都不能转换所有参数类型。 任何人都可以给我一些帮助吗?
答案 0 :(得分:1)
将this
替换为0
,它应该有效。
基本上,对话框不需要父对象。它可以独立存在而且没有问题。
https://qt-project.org/doc/qt-4.8/objecttrees.html
就像你问题的评论所说,你也不能用const
方法拨打警告。
另一种选择是你可以摆脱const
方法的newWizard()
'。
希望有所帮助。
答案 1 :(得分:1)
尝试将this
投射到QWidget *
我同意@phyatt,你可以设置parent = 0.意味着你的警告没有父母,也不是桌面的孩子。
E.g:
QMessageBox::warning((QWidget *)this,tr("Error"),
tr("File existed"));
QMessageBox::warning(0,tr("Error"),
tr("File existed"));