- Qt 5.15
- Qt Core
- C++ Classes
- QCommandLineOption
- Qt 5.15.18 Reference Documentation

# QCommandLineOption Class

The QCommandLineOption class defines a possible command-line option. More...

Header: | #include <QCommandLineOption>
qmake: | QT += core
Since: | Qt 5.2

This class was introduced in Qt 5.2.

- List of all members, including inherited members
- Obsolete members

## Public Types

enum | Flag { HiddenFromHelp, ShortOptionStyle }
flags | Flags

## Public Functions

| QCommandLineOption(const QCommandLineOption &other)
| QCommandLineOption(const QStringList &names, const QString &description, const QString &valueName = QString(), const QString &defaultValue = QString())
| QCommandLineOption(const QString &name, const QString &description, const QString &valueName = QString(), const QString &defaultValue = QString())
| QCommandLineOption(const QStringList &names)
| QCommandLineOption(const QString &name)
QCommandLineOption & | operator=(QCommandLineOption &&other)
QCommandLineOption & | operator=(const QCommandLineOption &other)
| ~QCommandLineOption()
QStringList | defaultValues() const
QString | description() const
Flags | flags() const
QStringList | names() const
void | setDefaultValue(const QString &defaultValue)
void | setDefaultValues(const QStringList &defaultValues)
void | setDescription(const QString &description)
void | setFlags(Flags flags)
void | setValueName(const QString &valueName)
void | swap(QCommandLineOption &other)
QString | valueName() const

## Detailed Description

This class is used to describe an option on the command line. It allows different ways of defining the same option with multiple aliases possible. It is also used to describe how the option is used - it may be a flag (e.g. `-v`) or take a value (e.g. `-o file`).

Examples:

     QCommandLineOption verboseOption("verbose", "Verbose mode. Prints out more information.");
     QCommandLineOption outputOption(QStringList() << "o" << "output", "Write generated data into <file>.", "file");

See also QCommandLineParser.

## Member Type Documentation

### enum QCommandLineOption::Flag
flags QCommandLineOption::Flags

Constant | Value | Description
--- | --- | ---
`QCommandLineOption::HiddenFromHelp` | `0x1` | Hide this option in the user-visible help output. All options are visible by default. Setting this flag for a particular option makes it internal, i.e. not listed in the help output.
`QCommandLineOption::ShortOptionStyle` | `0x2` | The option will always be understood as a short option, regardless of what was set by QCommandLineParser::setSingleDashWordOptionMode. This allows flags such as `-DDEFINE=VALUE` or `-I/include/path` to be interpreted as short flags even when the parser is in QCommandLineParser::ParseAsLongOptions mode.

The Flags type is a typedef for QFlags<Flag>. It stores an OR combination of Flag values.

See also QCommandLineOption::setFlags() and QCommandLineOption::flags().

## Member Function Documentation

### QCommandLineOption::QCommandLineOption(const QCommandLineOption &other)

Constructs a QCommandLineOption object that is a copy of the QCommandLineOption object other.

See also operator=().

### QCommandLineOption::QCommandLineOption(const QStringList &names, const QString &description, const QString &valueName = QString(), const QString &defaultValue = QString())

Constructs a command line option object with the given arguments.

This overload allows to set multiple names for the option, for instance `o` and `output`.

The names of the option are set to names. The names can be either short or long. Any name in the list that is one character in length is a short name. Option names must not be empty, must not start with a dash or a slash character, must not contain a `=` and cannot be repeated.

The description is set to description. It is customary to add a "." at the end of the description.

In addition, the valueName needs to be set if the option expects a value. The default value for the option is set to defaultValue.

In Qt versions before 5.4, this constructor was `explicit`. In Qt 5.4 and later, it no longer is and can be used for uniform initialization:

     QCommandLineParser parser;
     parser.addOption({{"o", "output"}, "Write generated data into <file>.", "file"});

See also setDescription(), setValueName(), and setDefaultValues().

### QCommandLineOption::QCommandLineOption(const QString &name, const QString &description, const QString &valueName = QString(), const QString &defaultValue = QString())

Constructs a command line option object with the given arguments.

The name of the option is set to name. The name can be either short or long. If the name is one character in length, it is considered a short name. Option names must not be empty, must not start with a dash or a slash character, must not contain a `=` and cannot be repeated.

The description is set to description. It is customary to add a "." at the end of the description.

In addition, the valueName needs to be set if the option expects a value. The default value for the option is set to defaultValue.

In Qt versions before 5.4, this constructor was `explicit`. In Qt 5.4 and later, it no longer is and can be used for uniform initialization:

     QCommandLineParser parser;
     parser.addOption({"verbose", "Verbose mode. Prints out more information."});

See also setDescription(), setValueName(), and setDefaultValues().

### QCommandLineOption::QCommandLineOption(const QStringList &names)

Constructs a command line option object with the names names.

This overload allows to set multiple names for the option, for instance `o` and `output`.

The names can be either short or long. Any name in the list that is one character in length is a short name. Option names must not be empty, must not start with a dash or a slash character, must not contain a `=` and cannot be repeated.

See also setDescription(), setValueName(), and setDefaultValues().

### QCommandLineOption::QCommandLineOption(const QString &name)

Constructs a command line option object with the name name.

The name can be either short or long. If the name is one character in length, it is considered a short name. Option names must not be empty, must not start with a dash or a slash character, must not contain a `=` and cannot be repeated.

See also setDescription(), setValueName(), and setDefaultValues().

### QCommandLineOption &QCommandLineOption::operator=(QCommandLineOption &&other)

Move-assigns other to this QCommandLineOption instance.

This function was introduced in Qt 5.2.

### QCommandLineOption &QCommandLineOption::operator=(const QCommandLineOption &other)

Makes a copy of the other object and assigns it to this QCommandLineOption object.

### QCommandLineOption::~QCommandLineOption()

Destroys the command line option object.

### QStringList QCommandLineOption::defaultValues() const

Returns the default values set for this option.

See also setDefaultValues().

### QString QCommandLineOption::description() const

Returns the description set for this option.

See also setDescription().

### Flags QCommandLineOption::flags() const

Returns a set of flags that affect this command-line option.

This function was introduced in Qt 5.8.

See also setFlags() and QCommandLineOption::Flags.

### QStringList QCommandLineOption::names() const

Returns the names set for this option.

### void QCommandLineOption::setDefaultValue(const QString &defaultValue)

Sets the default value used for this option to defaultValue.

The default value is used if the user of the application does not specify the option on the command line.

If defaultValue is empty, the option has no default values.

See also defaultValues() and setDefaultValues().

### void QCommandLineOption::setDefaultValues(const QStringList &defaultValues)

Sets the list of default values used for this option to defaultValues.

The default values are used if the user of the application does not specify the option on the command line.

See also defaultValues() and setDefaultValue().

### void QCommandLineOption::setDescription(const QString &description)

Sets the description used for this option to description.

It is customary to add a "." at the end of the description.

The description is used by QCommandLineParser::showHelp().

See also description().

### void QCommandLineOption::setFlags(Flags flags)

Set the set of flags that affect this command-line option to flags.

This function was introduced in Qt 5.8.

See also flags() and QCommandLineOption::Flags.

### void QCommandLineOption::setValueName(const QString &valueName)

Sets the name of the expected value, for the documentation, to valueName.

Options without a value assigned have a boolean-like behavior: either the user specifies --option or they don't.

Options with a value assigned need to set a name for the expected value, for the documentation of the option in the help output. An option with names `o` and `output`, and a value name of `file` will appear as `-o, --output <file>`.

Call QCommandLineParser::value() if you expect the option to be present only once, and QCommandLineParser::values() if you expect that option to be present multiple times.

See also valueName().

### void QCommandLineOption::swap(QCommandLineOption &other)

Swaps option other with this option. This operation is very fast and never fails.

### QString QCommandLineOption::valueName() const

Returns the name of the expected value.

If empty, the option doesn't take a value.

See also setValueName().