目标是实现 --name string --path string有这两个参数的功能。
示例代码
- .pro文件
cpp
qmake
QT -= gui
QT += core
CONFIG += c++17 console
CONFIG -= app_bundle
SOURCES += main.cpp
- .cpp示例文件
cpp
#include <QCoreApplication>
#include <QCommandLineParser>
#include <QCommandLineOption>
#include <QDebug>
#include <QSet>
#include <QFileInfo> // 新增:用于检查路径是否存在
int main(int argc, char *argv[])
{
QCoreApplication app(argc, argv);
QCoreApplication::setApplicationName("drawtool");
QCoreApplication::setApplicationVersion("1.0.0");
QCommandLineParser parser;
parser.addHelpOption();
parser.addVersionOption();
QCommandLineOption nameOption(QStringList() << "name",
"Name of the drawing (required). Available: shape1, shape2, shape3.",
"name");
parser.addOption(nameOption);
QCommandLineOption pathOption(QStringList() << "path",
"Output path for the drawing (required).",
"path");
parser.addOption(pathOption);
parser.process(app);
if (!parser.isSet(nameOption) || !parser.isSet(pathOption)) {
parser.showHelp(1);
}
QString name = parser.value(nameOption);
QString path = parser.value(pathOption);
// 验证 name 是否在允许的集合内
QSet<QString> allowedNames = {"shape1", "shape2", "shape3"};
if (!allowedNames.contains(name)) {
qCritical() << "Error: Invalid name '" << name << "'. Allowed values: shape1, shape2, shape3.";
return 1;
}
// ========== 新增:检查路径是否存在 ==========
QFileInfo pathInfo(path);
if (!pathInfo.exists()) {
qCritical() << "Error: Path does not exist:" << path;
return 1;
}
// 可选:如果是文件路径,检查其父目录是否可写;如果是目录路径,检查是否可写
// 这里仅做存在性检查,不区分文件还是目录
// 如需进一步检查,可使用 pathInfo.isDir() / pathInfo.isFile() 等
// 模拟绘制过程
qDebug() << "Drawing:" << name;
qDebug() << "Output path:" << path;
qDebug() << "Done.";
return 0;
}
运行示例
cpp
# 正常使用
./drawtool --name shape1 --path /tmp/output.png
# 缺少必选参数 → 自动显示帮助并退出
./drawtool --name shape1
# 无效的 name 值
./drawtool --name invalid --path ./out.png
# 查看帮助
./drawtool --help
# 查看版本
./drawtool --version
通过 IDE 设置调试参数的方法
- Qt Creator
打开项目后,进入左侧 Projects 模式(或按 Ctrl+5)。
在 Build & Run 下,选择当前使用的 Kit(如 Desktop Qt 6.x.x MinGW 64-bit)。
切换到 Run 标签页。
在 Arguments 输入框中,直接填写参数,例如:-opt1 -opt2 --verbose input.txt。
保存后,点击调试按钮(F5)启动,程序就会带上这些参数运行。
小提示:如果同时有 Release 和 Debug 两种配置,注意左上角切换为 Debug 模式后再设置。
- Visual Studio(配合 Qt Tools)
在解决方案资源管理器中,右键点击项目 → 属性。
展开 配置属性 → 调试。
在右侧 命令参数 一行中输入需要的参数。
确保顶部配置选为 Debug,然后按 F5 启动调试。