QCommandLineParser Class
QCommandLineParser 클래스는 명령줄 옵션을 처리하는 수단을 제공합니다. 더 보기...
Header: | #include <QCommandLineParser> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake: | QT += core |
공용 타입
enum | OptionsAfterPositionalArgumentsMode { ParseAsOptions, ParseAsPositionalArguments } |
enum | SingleDashWordOptionMode { ParseAsCompactedShortOptions, ParseAsLongOptions } |
공용 함수
QCommandLineParser() | |
~QCommandLineParser() | |
QCommandLineOption | addHelpOption() |
bool | addOption(const QCommandLineOption &option) |
bool | addOptions(const QList<QCommandLineOption> &options) |
void | addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString()) |
QCommandLineOption | addVersionOption() |
QString | applicationDescription() const |
void | clearPositionalArguments() |
QString | errorText() const |
QString | helpText() const |
bool | isSet(const QString &name) const |
bool | isSet(const QCommandLineOption &option) const |
QStringList | optionNames() const |
bool | parse(const QStringList &arguments) |
QStringList | positionalArguments() const |
void | process(const QStringList &arguments) |
void | process(const QCoreApplication &app) |
void | setApplicationDescription(const QString &description) |
void | setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode parsingMode) |
void | setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode) |
void | showHelp(int exitCode = 0) |
void | showVersion() |
QStringList | unknownOptionNames() const |
QString | value(const QString &optionName) const |
QString | value(const QCommandLineOption &option) const |
QStringList | values(const QString &optionName) const |
QStringList | values(const QCommandLineOption &option) const |
상세 설명
QCoreApplication 명령줄 인자를 간단한 문자열 목록으로 제공합니다. QCommandLineParser는 옵션 집합을 정의하고, 명령줄 인수를 구문 분석하고, 실제로 사용된 옵션과 옵션 값을 저장할 수 있는 기능을 제공합니다.
옵션이 아닌 모든 인수(즉, -
로 시작하지 않는 인수)는 "위치 인수"로 저장됩니다.
구문 분석기는 짧은 이름, 긴 이름, 동일한 옵션에 대한 둘 이상의 이름 및 옵션 값을 처리합니다.
명령줄의 옵션은 하나 또는 두 개의 -
문자로 시작하고 그 뒤에 옵션 이름이 오는 것으로 인식됩니다. -
옵션(대시 하나만)은 표준 입력을 의미하는 특수한 경우로, 옵션으로 취급되지 않습니다. 구문 분석기는 --
(이중 대시) 옵션 뒤의 모든 것을 위치 인수로 취급합니다.
짧은 옵션은 한 글자입니다. v
옵션은 명령줄에 -v
을 전달하여 지정할 수 있습니다. 기본 구문 분석 모드에서 짧은 옵션은 압축된 형태로 작성할 수 있습니다(예: -abc
은 -a -b -c
과 동일). 구문 분석 모드를 ParseAsLongOptions 으로 변경할 수 있으며 이 경우 -abc
은 긴 옵션 abc
으로 구문 분석됩니다.
긴 옵션은 한 글자 이상 길이이며 함께 압축할 수 없습니다. 긴 옵션 verbose
은 --verbose
또는 -verbose
으로 전달됩니다.
옵션에 값을 전달할 때는 할당 연산자(-v=value
, --verbose=value
)를 사용하거나 공백(-v value
, --verbose value
)을 사용하여 값을 전달할 수 있습니다. 이는 값이 -
로 시작하는 경우에도 작동합니다.
구문 분석기는 옵션 값을 지원하지 않으므로 옵션에 값이 필요하도록 설정된 경우 반드시 값이 있어야 합니다. 이러한 옵션이 마지막에 배치되고 값이 없는 경우 옵션이 지정되지 않은 것처럼 처리됩니다.
구문 분석기는 --disable-option
또는 --no-option
형식을 사용하여 긴 옵션을 무효화하거나 비활성화하는 것을 자동으로 지원하지 않습니다. 그러나 이름 중 하나에 no-option
를 사용하여 옵션을 만들고 옵션을 명시적으로 처리하면 이 경우를 명시적으로 처리할 수 있습니다.
예시:
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QCoreApplication::setApplicationName("my-copy-program"); QCoreApplication::setApplicationVersion("1.0"); QCommandLineParser parser; parser.setApplicationDescription("Test helper"); parser.addHelpOption(); parser.addVersionOption(); parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy.")); parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory.")); // A boolean option with a single name (-p) QCommandLineOption showProgressOption("p", QCoreApplication::translate("main", "Show progress during copy")); parser.addOption(showProgressOption); // A boolean option with multiple names (-f, --force) QCommandLineOption forceOption(QStringList() << "f" << "force", QCoreApplication::translate("main", "Overwrite existing files.")); parser.addOption(forceOption); // An option with a value QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory", QCoreApplication::translate("main", "Copy all source files into <directory>."), QCoreApplication::translate("main", "directory")); parser.addOption(targetDirectoryOption); // Process the actual command line arguments given by the user parser.process(app); const QStringList args = parser.positionalArguments(); // source is args.at(0), destination is args.at(1) bool showProgress = parser.isSet(showProgressOption); bool force = parser.isSet(forceOption); QString targetDir = parser.value(targetDirectoryOption); // ... }
위의 예에서 세 개의 addOption() 호출은 addOptions()를 사용하여 더 간결하게 만들 수 있습니다:
parser.addOptions({ // A boolean option with a single name (-p) {"p", QCoreApplication::translate("main", "Show progress during copy")}, // A boolean option with multiple names (-f, --force) {{"f", "force"}, QCoreApplication::translate("main", "Overwrite existing files.")}, // An option with a value {{"t", "target-directory"}, QCoreApplication::translate("main", "Copy all source files into <directory>."), QCoreApplication::translate("main", "directory")}, });
알려진 제한 사항: QCoreApplication 및 서브클래스 내부의 Qt 옵션 구문 분석은 QCommandLineParser가 존재하기 전에 발생하므로 이를 고려할 수 없습니다. 즉, 내장된 Qt 옵션처럼 보이는 옵션 값은 QCoreApplication 에서 내장된 Qt 옵션으로 취급됩니다. 예: --profile -reverse
은 QGuiApplication 에서 -reverse 옵션이 설정된 것을 보고 QCoreApplication::arguments()에서 이를 제거한 후 profile
옵션을 정의하고 명령줄을 구문 분석합니다.
복잡한 애플리케이션에서 QCommandLineParser를 사용하는 방법
실제로는 위치 인수와 옵션 값에 대해 추가적인 오류 검사를 수행해야 합니다. 예를 들어 숫자 범위를 확인해야 합니다.
그런 다음 옵션 값을 받는 구조체나 클래스가 결과를 나타내는 객체를 반환하는 명령줄 구문 분석을 수행하는 함수를 도입하는 것이 좋습니다. QtNetwork 모듈의 dnslookup 예제가 이를 보여줍니다:
struct DnsQuery { DnsQuery() : type(QDnsLookup::A) {} QDnsLookup::Type type; QHostAddress nameServer; QString name; }; struct CommandLineParseResult { enum class Status { Ok, Error, VersionRequested, HelpRequested }; Status statusCode = Status::Ok; std::optional<QString> errorString = std::nullopt; }; CommandLineParseResult parseCommandLine(QCommandLineParser &parser, DnsQuery *query) { using Status = CommandLineParseResult::Status; parser.setSingleDashWordOptionMode(QCommandLineParser::ParseAsLongOptions); const QCommandLineOption nameServerOption("n", "The name server to use.", "nameserver"); parser.addOption(nameServerOption); const QCommandLineOption typeOption("t", "The lookup type.", "type"); parser.addOption(typeOption); parser.addPositionalArgument("name", "The name to look up."); const QCommandLineOption helpOption = parser.addHelpOption(); const QCommandLineOption versionOption = parser.addVersionOption(); if (!parser.parse(QCoreApplication::arguments())) return { Status::Error, parser.errorText() }; if (parser.isSet(versionOption)) return { Status::VersionRequested }; if (parser.isSet(helpOption)) return { Status::HelpRequested }; if (parser.isSet(nameServerOption)) { const QString nameserver = parser.value(nameServerOption); query->nameServer = QHostAddress(nameserver); if (query->nameServer.isNull() || query->nameServer.protocol() == QAbstractSocket::UnknownNetworkLayerProtocol) { return { Status::Error, u"Bad nameserver address: %1"_s.arg(nameserver) }; } } if (parser.isSet(typeOption)) { const QString typeParameter = parser.value(typeOption); if (std::optional<QDnsLookup::Type> type = typeFromParameter(typeParameter)) query->type = *type; else return { Status::Error, u"Bad record type: %1"_s.arg(typeParameter) }; } const QStringList positionalArguments = parser.positionalArguments(); if (positionalArguments.isEmpty()) return { Status::Error, u"Argument 'name' missing."_s }; if (positionalArguments.size() > 1) return { Status::Error, u"Several 'name' arguments specified."_s }; query->name = positionalArguments.first(); return { Status::Ok }; }
메인 함수에서 도움말 옵션이 전달된 경우 표준 출력에 도움말이 인쇄되어야 하고 애플리케이션은 종료 코드 0을 반환해야 합니다.
오류가 감지되면 오류 메시지가 표준 오류 출력에 인쇄되고 애플리케이션은 0이 아닌 종료 코드를 반환해야 합니다.
QCoreApplication::setApplicationVersion(QT_VERSION_STR); QCoreApplication::setApplicationName(QCoreApplication::translate("QDnsLookupExample", "DNS Lookup Example")); QCommandLineParser parser; parser.setApplicationDescription(QCoreApplication::translate("QDnsLookupExample", "An example demonstrating the " "class QDnsLookup.")); DnsQuery query; using Status = CommandLineParseResult::Status; CommandLineParseResult parseResult = parseCommandLine(parser, &query); switch (parseResult.statusCode) { case Status::Ok: break; case Status::Error: std::fputs(qPrintable(parseResult.errorString.value_or(u"Unknown error occurred"_s)), stderr); std::fputs("\n\n", stderr); std::fputs(qPrintable(parser.helpText()), stderr); return 1; case Status::VersionRequested: parser.showVersion(); Q_UNREACHABLE_RETURN(0); case Status::HelpRequested: parser.showHelp(); Q_UNREACHABLE_RETURN(0); }
여기서 고려해야 할 특별한 경우는 Windows 및 모바일 플랫폼의 GUI 애플리케이션입니다. 이러한 애플리케이션은 출력이 삭제되거나 액세스할 수 없으므로 표준 출력 또는 오류 채널을 사용하지 않을 수 있습니다.
Windows에서는 콘솔 창을 얻을 수 없는 경우 QCommandLineParser가 메시지 상자를 사용하여 사용 정보 및 오류를 표시합니다. 이러한 메시지 상자는 QT_COMMAND_LINE_PARSER_NO_GUI_MESSAGE_BOXES
환경 변수를 설정하여 생략할 수 있습니다.
다른 플랫폼의 경우에는 QMessageBox 을 사용하여 도움말 텍스트 및 오류 메시지를 표시하는 것이 좋습니다. 도움말 텍스트의 서식을 유지하려면 <pre>
요소가 포함된 서식 있는 텍스트를 사용해야 합니다:
switch (parseResult.statusCode) { case Status::Ok: break; case Status::Error: { QString errorMessage = parseResult.errorString.value_or(u"Unknown error occurred"_qs); QMessageBox::warning(0, QGuiApplication::applicationDisplayName(), "<html><head/><body><h2>" + errorMessage + "</h2><pre>" + parser.helpText() + "</pre></body></html>"); return 1; } case Status::VersionRequested: QMessageBox::information(0, QGuiApplication::applicationDisplayName(), QGuiApplication::applicationDisplayName() + ' ' + QCoreApplication::applicationVersion()); return 0; case Status::HelpRequested: QMessageBox::warning(0, QGuiApplication::applicationDisplayName(), "<html><head/><body><pre>" + parser.helpText() + "</pre></body></html>"); return 0; }
그러나 이는 콘솔 애플리케이션이므로 dnslookup 예제에는 적용되지 않습니다.
QCommandLineOption 및 QCoreApplication 을참조하세요 .
멤버 유형 문서
enum QCommandLineParser::OptionsAfterPositionalArgumentsMode
이 열거형은 구문 분석기가 위치 인수 다음에 발생하는 옵션을 해석하는 방식을 설명합니다.
Constant | 값 | Description |
---|---|---|
QCommandLineParser::ParseAsOptions | 0 | application argument --opt -t 는 application --opt -t argument 처럼 opt 및 t 옵션을 설정하는 것으로 해석됩니다. 이것이 기본 구문 분석 모드입니다. 대신 --opt 및 -t 을 위치 인자로 지정하려면 application argument -- --opt -t 에서와 같이 -- 을 사용하면 됩니다. |
QCommandLineParser::ParseAsPositionalArguments | 1 | application argument --opt 는 argument 와 --opt 라는 두 개의 위치 인수가 있는 것으로 해석됩니다. 이 모드는 다른 실행 파일(예: 래퍼, 디버깅 도구 등)을 실행하거나 내부 명령 뒤에 명령에 대한 옵션을 지원하는 실행 파일에 유용합니다. argument 은 명령의 이름이며, 그 뒤에 발생하는 모든 옵션은 다른 명령줄 파서에서 수집하여 다른 실행 파일에서 파싱할 수 있습니다. |
setOptionsAfterPositionalArgumentsMode()도 참조하세요 .
enum QCommandLineParser::SingleDashWordOptionMode
이 열거형은 구문 분석기가 단일 대시 뒤에 여러 문자를 사용하는 명령줄 옵션을 -abc
과 같이 해석하는 방식을 설명합니다.
Constant | 값 | 설명 |
---|---|---|
QCommandLineParser::ParseAsCompactedShortOptions | 0 | -abc 는 -a -b -c , 즉 명령줄에 압축된 세 개의 짧은 옵션으로 해석됩니다(옵션 중 값을 취하는 옵션이 없는 경우). a 에 값을 받으면 -a bc , 즉 짧은 옵션 a 뒤에 값 bc 으로 해석됩니다. 이 모드는 일반적으로 컴파일러처럼 작동하는 도구에서 -DDEFINE=VALUE 또는 -I/include/path 과 같은 옵션을 처리하기 위해 사용됩니다. 이것이 기본 구문 분석 모드입니다. 새 애플리케이션은 이 모드를 사용하는 것이 좋습니다. |
QCommandLineParser::ParseAsLongOptions | 1 | -abc 는 --abc , 즉 abc 이라는 긴 옵션으로 해석됩니다. Qt의 자체 도구(uic, rcc...)가 항상 인수를 구문 분석하는 방식입니다. 이 모드는 이러한 방식으로 인자를 구문 분석하던 응용 프로그램에서 호환성을 유지하기 위해 사용해야 합니다. a 옵션에 QCommandLineOption::ShortOptionStyle 플래그가 설정되어 있는 경우 예외가 있으며, 이 경우 여전히 -a bc 로 해석됩니다. |
setSingleDashWordOptionMode()도 참조하세요 .
멤버 함수 문서
QCommandLineParser::QCommandLineParser()
명령줄 구문 분석기 객체를 생성합니다.
[noexcept]
QCommandLineParser::~QCommandLineParser()
명령줄 구문 분석기 객체를 삭제합니다.
QCommandLineOption QCommandLineParser::addHelpOption()
명령줄 구문 분석기에 도움말 옵션을 추가합니다.
이 명령줄에 지정된 옵션은 -h
또는 --help
에 설명되어 있습니다. Windows에서는 대체 -?
도 지원됩니다. --help-all
옵션은 이 명령에 정의되지 않은 일반 Qt 옵션을 출력에 포함하도록 확장합니다.
이러한 옵션은 QCommandLineParser 에 의해 자동으로 처리됩니다.
setApplicationDescription()를 사용하여 이 옵션을 사용할 때 표시되는 애플리케이션 설명을 설정하는 것을 잊지 마세요.
예시:
int main(int argc, char *argv[]) { QCoreApplication app(argc, argv); QCoreApplication::setApplicationName("my-copy-program"); QCoreApplication::setApplicationVersion("1.0"); QCommandLineParser parser; parser.setApplicationDescription("Test helper"); parser.addHelpOption(); parser.addVersionOption(); parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy.")); parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory.")); // A boolean option with a single name (-p) QCommandLineOption showProgressOption("p", QCoreApplication::translate("main", "Show progress during copy")); parser.addOption(showProgressOption); // A boolean option with multiple names (-f, --force) QCommandLineOption forceOption(QStringList() << "f" << "force", QCoreApplication::translate("main", "Overwrite existing files.")); parser.addOption(forceOption); // An option with a value QCommandLineOption targetDirectoryOption(QStringList() << "t" << "target-directory", QCoreApplication::translate("main", "Copy all source files into <directory>."), QCoreApplication::translate("main", "directory")); parser.addOption(targetDirectoryOption); // Process the actual command line arguments given by the user parser.process(app); const QStringList args = parser.positionalArguments(); // source is args.at(0), destination is args.at(1) bool showProgress = parser.isSet(showProgressOption); bool force = parser.isSet(forceOption); QString targetDir = parser.value(targetDirectoryOption); // ... }
isSet()를 호출하는 데 사용할 수 있는 옵션 인스턴스를 반환합니다.
bool QCommandLineParser::addOption(const QCommandLineOption &option)
구문 분석 중에 찾을 option 옵션을 추가합니다.
옵션 추가에 성공하면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
옵션에 이름이 없거나 옵션에 이전에 추가된 옵션 이름과 충돌하는 이름이 있는 경우 옵션 추가에 실패합니다.
bool QCommandLineParser::addOptions(const QList<QCommandLineOption> &options)
구문 분석 중에 찾을 옵션을 추가합니다. 옵션은 매개변수 options 로 지정됩니다.
모든 옵션을 추가하는 데 성공하면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
이 함수가 실패할 수 있는 경우는 addOption() 설명서를 참조하세요.
void QCommandLineParser::addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString())
도움말 텍스트의 편의를 위해 애플리케이션에 대한 추가 인수를 정의합니다.
name 및 description 인수는 도움말의 Arguments:
섹션 아래에 표시됩니다. syntax 을 지정하면 사용법 줄에 추가되고, 그렇지 않으면 name 이 추가됩니다.
예:
// Usage: image-editor file // // Arguments: // file The file to open. parser.addPositionalArgument("file", QCoreApplication::translate("main", "The file to open.")); // Usage: web-browser [urls...] // // Arguments: // urls URLs to open, optionally. parser.addPositionalArgument("urls", QCoreApplication::translate("main", "URLs to open, optionally."), "[urls...]"); // Usage: cp source destination // // Arguments: // source Source file to copy. // destination Destination directory. parser.addPositionalArgument("source", QCoreApplication::translate("main", "Source file to copy.")); parser.addPositionalArgument("destination", QCoreApplication::translate("main", "Destination directory."));
addHelpOption() 및 helpText()도 참조하세요 .
QCommandLineOption QCommandLineParser::addVersionOption()
애플리케이션의 버전 문자열을 표시하는 -v
/ --version
옵션을 추가합니다.
이 옵션은 QCommandLineParser 에 의해 자동으로 처리됩니다.
QCoreApplication::setApplicationVersion()를 사용하여 실제 버전 문자열을 설정할 수 있습니다.
isSet()를 호출하는 데 사용할 수 있는 옵션 인스턴스를 반환합니다.
QString QCommandLineParser::applicationDescription() const
setApplicationDescription()에 설정된 애플리케이션 설명을 반환합니다.
setApplicationDescription()도 참조하세요 .
void QCommandLineParser::clearPositionalArguments()
도움말 텍스트에서 추가 인수의 정의를 지웁니다.
이 옵션은 서로 다른 옵션을 가진 여러 명령을 지원하는 도구의 특수한 경우에만 필요합니다. 실제 명령이 식별되면 이 명령에 대한 옵션을 정의하고 그에 따라 명령에 대한 도움말 텍스트를 조정할 수 있습니다.
예시:
QCoreApplication app(argc, argv); QCommandLineParser parser; parser.addPositionalArgument("command", "The command to execute."); // Call parse() to find out the positional arguments. parser.parse(QCoreApplication::arguments()); const QStringList args = parser.positionalArguments(); const QString command = args.isEmpty() ? QString() : args.first(); if (command == "resize") { parser.clearPositionalArguments(); parser.addPositionalArgument("resize", "Resize the object to a new size.", "resize [resize_options]"); parser.addOption(QCommandLineOption("size", "New size.", "new_size")); parser.process(app); // ... } /* This code results in context-dependent help: $ tool --help Usage: tool command Arguments: command The command to execute. $ tool resize --help Usage: tool resize [resize_options] Options: --size <size> New size. Arguments: resize Resize the object to a new size. */
QString QCommandLineParser::errorText() const
사용자에게 번역된 오류 텍스트를 반환합니다. parse ()가 false
을 반환할 때만 호출해야 합니다.
QString QCommandLineParser::helpText() const
전체 도움말 정보가 포함된 문자열을 반환합니다.
showHelp()도 참조하세요 .
bool QCommandLineParser::isSet(const QString &name) const
name 옵션이 애플리케이션에 전달되었는지 확인합니다.
name 옵션이 설정된 경우 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
제공된 이름은 addOption()로 추가한 옵션의 길거나 짧은 이름이면 됩니다. 모든 옵션 이름은 동등한 것으로 취급됩니다. 이름이 인식되지 않거나 해당 옵션이 존재하지 않으면 false가 반환됩니다.
예시:
bool verbose = parser.isSet("verbose");
bool QCommandLineParser::isSet(const QCommandLineOption &option) const
이 함수는 과부하된 함수입니다.
option 가 애플리케이션에 전달되었는지 여부를 확인합니다.
option 이 설정된 경우 true
을 반환하고, 그렇지 않으면 false를 반환합니다.
값이 없는 옵션을 확인하는 데 권장되는 방법입니다.
예시:
QCoreApplication app(argc, argv); QCommandLineParser parser; QCommandLineOption verboseOption("verbose"); parser.addOption(verboseOption); parser.process(app); bool verbose = parser.isSet(verboseOption);
QStringList QCommandLineParser::optionNames() const
발견된 옵션 이름 목록을 반환합니다.
구문 분석기가 찾은 모든 인식된 옵션 이름의 목록을 발견한 순서대로 반환합니다. 옵션=값} 형식의 긴 옵션의 경우 값 부분이 삭제됩니다.
이 목록의 이름에는 앞의 대시 문자가 포함되지 않습니다. 구문 분석기가 두 번 이상 발견한 이름은 이 목록에 두 번 이상 나타날 수 있습니다.
목록의 모든 항목은 value() 또는 values()와 함께 사용하여 관련 옵션 값을 가져올 수 있습니다.
bool QCommandLineParser::parse(const QStringList &arguments)
명령줄을 파싱합니다 arguments.
대부분의 프로그램은 이 함수를 호출할 필요가 없으며 process()를 간단히 호출하는 것으로 충분합니다.
parse()는 더 낮은 수준이며 구문 분석만 수행합니다. parse()가 false
을 반환하면 애플리케이션이 errorText()를 사용하여 오류 처리를 처리해야 합니다. 이는 예를 들어 그래픽 프로그램에서 그래픽 오류 메시지를 표시하는 데 유용할 수 있습니다.
process()을 호출하기 전에 나중에 (인수 중 하나에 따라) 더 많은 옵션 정의가 제공되므로 알 수 없는 옵션을 일시적으로 무시하기 위해 process() 대신 parse()를 호출하는 것도 유용할 수 있습니다.
arguments 은 실행 파일의 이름으로 시작해야 한다는 것을 잊지 마세요(단, 무시됨).
구문 분석 오류(알 수 없는 옵션 또는 누락된 값)가 있는 경우 false
을 반환하고, 그렇지 않으면 true
을 반환합니다.
process()도 참조하세요 .
QStringList QCommandLineParser::positionalArguments() const
위치 인자 목록을 반환합니다.
옵션의 일부로 인식되지 않은 모든 인수를 반환합니다.
void QCommandLineParser::process(const QStringList &arguments)
명령줄을 처리합니다 arguments.
이 함수는 옵션( parse() 등)을 구문 분석하는 것 외에도 기본 제공 옵션을 처리하고 오류를 처리합니다.
기본 제공 옵션은 addVersionOption 이 호출된 경우 --version
, addHelpOption 이 호출된 경우 --help
/ --help-all
입니다.
이러한 옵션 중 하나를 호출하거나 오류가 발생하면(예: 알 수 없는 옵션이 전달된 경우) exit() 함수를 사용하여 현재 프로세스가 중지됩니다.
QCoreApplication::arguments() 및 parse()도 참조하세요 .
void QCommandLineParser::process(const QCoreApplication &app)
이 함수는 오버로드된 함수입니다.
명령줄은 QCoreApplication 인스턴스 app 에서 가져옵니다.
void QCommandLineParser::setApplicationDescription(const QString &description)
helpText()에 표시된 애플리케이션 description 을 설정합니다.
applicationDescription()도 참조하세요 .
void QCommandLineParser::setOptionsAfterPositionalArgumentsMode(QCommandLineParser::OptionsAfterPositionalArgumentsMode parsingMode)
구문 분석 모드를 parsingMode 으로 설정합니다. process() 또는 parse() 앞에 호출해야 합니다.
void QCommandLineParser::setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)
구문 분석 모드를 singleDashWordOptionMode 으로 설정합니다. process() 또는 parse() 앞에 호출해야 합니다.
void QCommandLineParser::showHelp(int exitCode = 0)
도움말 정보를 표시하고 애플리케이션을 종료합니다. 이 옵션은 -help 옵션에 의해 자동으로 트리거되지만 사용자가 애플리케이션을 올바르게 호출하지 않을 때 도움말을 표시하는 데 사용할 수도 있습니다. 종료 코드는 exitCode 로 설정되며, 사용자가 도움말을 보도록 요청한 경우에는 0으로, 오류가 발생한 경우에는 다른 값으로 설정해야 합니다.
helpText()도 참조하세요 .
void QCommandLineParser::showVersion()
QCoreApplication::applicationVersion()의 버전 정보를 표시하고 애플리케이션을 종료합니다. 이는 -version 옵션에 의해 자동으로 트리거되지만 process()를 사용하지 않을 때 버전을 표시하는 데 사용할 수도 있습니다. 종료 코드는 EXIT_SUCCESS(0)로 설정됩니다.
addVersionOption()도 참조하세요 .
QStringList QCommandLineParser::unknownOptionNames() const
알 수 없는 옵션 이름 목록을 반환합니다.
이 목록에는 인식되지 않은 긴 이름과 짧은 이름의 옵션이 모두 포함됩니다. 옵션=값} 형식의 긴 옵션의 경우 값 부분이 삭제되고 긴 이름만 추가됩니다.
이 목록의 이름에는 앞의 대시 문자가 포함되지 않습니다. 구문 분석기가 두 번 이상 발견한 이름은 이 목록에 두 번 이상 나타날 수 있습니다.
optionNames()도 참조하세요 .
QString QCommandLineParser::value(const QString &optionName) const
주어진 옵션 이름 optionName 에 대해 찾은 옵션 값을 반환하거나 찾을 수 없는 경우 빈 문자열을 반환합니다.
제공된 이름은 addOption()로 추가한 옵션의 길거나 짧은 이름이면 됩니다. 모든 옵션 이름은 동등한 것으로 취급됩니다. 이름이 인식되지 않거나 해당 옵션이 존재하지 않으면 빈 문자열이 반환됩니다.
구문 분석기가 찾은 옵션의 경우 해당 옵션에 대해 마지막으로 찾은 값이 반환됩니다. 명령줄에 옵션이 지정되지 않은 경우에는 기본값이 반환됩니다.
옵션에 값을 받지 않으면 경고가 인쇄되고 빈 문자열이 반환됩니다.
values(), QCommandLineOption::setDefaultValue() 및 QCommandLineOption::setDefaultValues()도 참조하세요 .
QString QCommandLineParser::value(const QCommandLineOption &option) const
이 함수는 오버로드된 함수입니다.
주어진 option 에 대해 찾은 옵션 값을 반환하거나 찾을 수 없는 경우 빈 문자열을 반환합니다.
구문 분석기가 찾은 옵션의 경우 해당 옵션에 대해 마지막으로 찾은 값이 반환됩니다. 명령줄에 옵션이 지정되지 않은 경우에는 기본값이 반환됩니다.
옵션에 값을 받지 않으면 빈 문자열이 반환됩니다.
values(), QCommandLineOption::setDefaultValue() 및 QCommandLineOption::setDefaultValues()도 참조하세요 .
QStringList QCommandLineParser::values(const QString &optionName) const
주어진 옵션 이름 optionName 에 대해 찾은 옵션 값의 목록을 반환하거나 찾을 수 없는 경우 빈 목록을 반환합니다.
제공된 이름은 addOption()로 추가한 옵션의 길거나 짧은 이름이면 됩니다. 모든 옵션 이름은 동등한 것으로 취급됩니다. 이름이 인식되지 않거나 해당 옵션이 존재하지 않으면 빈 목록이 반환됩니다.
구문 분석기가 찾은 옵션의 경우 목록에는 해당 옵션이 구문 분석기에 의해 발견될 때마다 항목이 포함됩니다. 명령줄에 옵션이 지정되지 않은 경우에는 기본값이 반환됩니다.
옵션이 값을 받지 않으면 빈 목록이 반환됩니다.
value(), QCommandLineOption::setDefaultValue() 및 QCommandLineOption::setDefaultValues()도 참조하세요 .
QStringList QCommandLineParser::values(const QCommandLineOption &option) const
이 함수는 오버로드된 함수입니다.
주어진 option 에 대해 찾은 옵션 값의 목록을 반환하거나, 찾지 못하면 빈 목록을 반환합니다.
구문 분석기가 찾은 옵션의 경우 목록에는 해당 옵션이 구문 분석기에 의해 발견될 때마다 항목이 포함됩니다. 명령줄에 옵션이 지정되지 않은 경우에는 기본값이 반환됩니다.
옵션이 값을 받지 않으면 빈 목록이 반환됩니다.
value(), QCommandLineOption::setDefaultValue() 및 QCommandLineOption::setDefaultValues()도 참조하세요 .
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.