0
QFileDialog::getOpenFileName
및 QFileDialog::getSaveFileName
이 사용하는 기본 디렉터리 경로를 저장하고 업데이트하려고합니다. 이를 위해, 나는이 제 3 공통 기능 주위에 래퍼 함수를 만들었습니다 :정적 멤버 함수를 인수로 전달
QString GetSaveFile (QWidget *parent, const QString &title, const QString &desc)
{
return GetFile (&QFileDialog::getSaveFileName, parent, title, desc);
}
QString GetOpenFile (QWidget *parent, const QString &title, const QString &desc)
{
return GetFile (&QFileDialog::getOpenFileName, parent, title, desc);
}
QString GetFile (std::function <QString (QWidget *, const QString&, const QString&, const QString&, QString*, QFileDialog::Options)> func,
QWidget *parent, const QString &title, const QString &desc)
{
// this produces C2064
QString path = func (parent, title, CurrentDir, desc, 0, 0);
if (!path.isEmpty())
UpdateCurrentDir (QFileInfo (path).absoluteDir().path());
return path;
}
그러나 컴파일하는 동안, 나는
error C2064: term does not evaluate to a function taking 6 arguments
얻을하지만 내 첫 번째 인수 6을받는 함수입니다 인수. 내가 도대체 뭘 잘못하고있는 겁니까?
왜 당신은'QFileDialog :: saveState()'와'QFileDialog :: restoreState()'기능을 사용하지 마십시오 : 문제는
_VARIADIC_MAX
해결했다 재정? – vahancho코드가 정상적으로 표시됩니다. 오류가 발생한 행이 선인지 확인하십시오. –
** vahancho ** :이 경우 QFileDialog :: getOpenFileName 및 QFileDialog :: getSaveFileName과 같은 정적 함수를 사용할 수 없기 때문에. 수동으로 QFileDialog를 만들 수 있지만이 경우 오류가 발생하는 이유를 알고 싶습니다. ** Marco A. ** : MSVC에서 오류 알림을 두 번 클릭하면 해당 줄로 커서가 이동합니다. 줄 번호도 일치합니다. –