파일을 다른 형식으로 압축하는 데 사용하는 클래스가 있습니다. QtConcurrent를 사용하여 백그라운드에서 압축을 실행하려고합니다. 이것으로 나는이 두 가지 기능을 가지고 :QT 오버로드 된 클래스 함수로 QtConcurrent가 실행되었습니다.
- 문자열 및 압축 형식
- 로 파일 경로를 걸립니다 QtConcurrent와
문제 내가 갖는되는 문제를 파일 경로 벡터와 압축 형식을 취하지 어떤 오버로드 된 함수를 사용할 것인지를 아는 것. 나는 this stackoverflow을 읽어서 static_cast를 사용하여 명시 적으로 사용할 메소드를 명시했다. 내 함수는 클래스 함수가 아니고 정적 메서드가 아니기 때문에 나는 구문을 고수하고있다. static 메소드가 아니라고 생각해서 static_cast를 사용할 수 있습니까? 내가 실행 전화 했어 어떻게
: 나는 압축 기능 중 하나를 제거하면 압축 클래스
CompressFile compressor(&m_sysLog);
QVector<QString> files;
CompressFormat format((CompressFormat)pMsgCast->get_format());
QtConcurrent::run(&compressor, &CompressFile::compress, files, format);
헤더
class CompressFile : public QObject
{
Q_OBJECT
public:
...
bool compress(QString strFileName, CompressFormat format);
bool compress(QVector<QString> strFileList, CompressFormat format);
...
}
그것은 내가 좁혀했습니다 알 수 있도록 컴파일 내 문제는 여기까지.
FileCompressor.cpp : 100 : 74 : 참고 : 유형 'T (클래스 :) (Param1을,과 Param2, 3 당겨, Param4, Param5) CONST'와 '부울 (CompressFile :) (QString, CompressFormat) '호환되지 않는 이력서 - 예선 FileCompressor.cpp가 : 100 : 74 :주의 : 오버로드 된 함수에서 주소를 확인할 수 없습니다'는 의견에 따라, 당신이 사이에 명확하게하기 위해
static_cast
을 사용할 수 있습니다 & CompressFile : 압축 '
당신은 *'static_cast'를 사용할 수 있어야합니다. QtConcurrent :: run (& compress, static_cast, CompressFormat)> (압축 파일 :: 압축), 파일, 형식)'을 시도하십시오. –
그게 효과가! 제 문법은 너무나 감사합니다. 게시물을 작성하면 답변으로 표시됩니다. –