Qt获取打开文件的目录

时间:2016-02-21 09:48:58

标签: c++ qt

我制作了一个使用Qt框架工作得很好的记事本。当我使用QFileDialog打开文件并获取文件的路径时,它很好。但是当我从FileBrowser打开一个文件时,QTextEdit是空的。我认为这是完全正常的,因为我没有得到打开文件的路径。这正是我需要的,如何获取打开的文件路径并将其存储在QString中。有没有办法在Qt中获得它?我听说过argv,但我不知道如何使用它,我没有找到文档。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

您想要阅读应用程序参数。最简单的方法是检查是否有东西通过,然后将第一个参数解释为文件名,例如:

QString fileUrl;
if(argc > 1)
    fileUrl = QString(argv[1]);

或者:

QCoreApplication app(argc, argv);
QString fileUrl;
if(app.arguments().length() > 1)
    fileUrl = app.arguments()[1];

然而在Qt中,有一个更灵活的解决方案,使用QCommandLineParser,例如:

QCoreApplication app(argc, argv);
QCommandLineParser parser;
parser.addPositionalArgument("url", "Url of file to open");
parser.process(app);
QString fileUrl;
if(parser.positionalArguments().length() > 0)
    fileUrl = parser.positionalArguments()[0];

最后一个解决方案更灵活,因为可以很容易地向应用程序添加其他命令行选项。