Я сделал блокнот, который отлично работает с использованием рамки Qt. Когда я открываю файл с помощью QFileDialog и получаю путь к файлу, все в порядке. Но когда я открываю файл из FileBrowser, QTextEdit пуст. Я думаю, что это абсолютно нормально, потому что я не получил путь к открытому файлу. Это именно то, что мне нужно, как получить открытый путь к файлу и запасти его в QString. Есть ли способ получить его в Qt? Я слышал про argv, но я не знал, как его использовать, и я не нашел документацию. Спасибо за вашу помощь!Qt получить каталог открытого файла с
-1
A
ответ
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];
Последнее решение является более гибким, поскольку в приложение будет легко добавить другие параметры командной строки.
Я думаю, что это нуждается в более разъяснении. Какие два случая? Во втором сценарии вы открываете файл с QFileDialog и помещаете содержимое в QTextDialog и как вы это делаете в первом сценарии? И используете ли вы здесь блокнот Windows или это просто имя для вашего приложения? – IceFire
http://doc.qt.io/qt-5/qcoreapplication.html#arguments – nwp
Спасибо за ваше предупреждение! Я исправил это. – QApps