QCommandLineOption ohne default value
Verfasst: 16. Januar 2015 15:34
Hi Leute,
ich habe ein QCommandLineOption wo ich eine mögliche Ausgabedatei eingeben kann. Mein Programm schreibt auf jeden Fall was auf die Kommandozeile. Wenn ich die Option benutze, möchte ich diese zusätzlich auch in eine Datei schreiben. Wenn kein -o gesetzt ist, soll auch keine Datei beschrieben werden, auch keine default. Der Konstruktor von QCommandLineOption verlang eine const QString & defaultValue = QString()
Gelöst habe ich es so:
mit einem leeren string in der Defaultzeile und späterer if outfile.isEmpty() abfrage.
1. Frage: Geht das nicht eleganter, oder ist das schon der eleganteste Weg?
2. Frage: Ich habe ein paar Schalter wo nur -d zB setze (ohne value).
Dort gucke ich dann, ob parser_args ein 'd' enthält. Das finde ich auch nicht sehr elegant??
Thnx und viele Grüße
Lespaul
ich habe ein QCommandLineOption wo ich eine mögliche Ausgabedatei eingeben kann. Mein Programm schreibt auf jeden Fall was auf die Kommandozeile. Wenn ich die Option
Code: Alles auswählen
-o outfile.txt
Code: Alles auswählen
QCommandLineOption out_opt(QStringList() << "o" << "output",
QCoreApplication::translate("main", "Output file."),
QCoreApplication::translate("main", "outfile"), // value name
QCoreApplication::translate("main", "default_file.txt") // default value
);
Code: Alles auswählen
QCommandLineOption out_opt(QStringList() << "o" << "output",
QCoreApplication::translate("main", "Output file."),
QCoreApplication::translate("main", "outfile"), // value name
QCoreApplication::translate("main", "") // default value
);
1. Frage: Geht das nicht eleganter, oder ist das schon der eleganteste Weg?
2. Frage: Ich habe ein paar Schalter wo nur -d zB setze (ohne value).
Code: Alles auswählen
QStringList parser_args = parser.positionalArguments();
parser_args << parser.value(out_opt);
if (parser.isSet(duration_opt)) parser_args << "d";
//..
callOtherProcess(parser_args);
Thnx und viele Grüße
Lespaul