找到
1
篇与
Qt QProcess start deprecated
相关的结果
-
'start' is deprecated,Qt开发中新版QProcess的start到底该怎么用? 本文介绍了Qt开发中QProcess::start()方法被标记为废弃(deprecated)后的替代方案,帮助开发者正确使用新版API。文章详细讲解两种推荐方法:一是使用带参数列表的start(program, arguments),适用于需要传递参数的情况。二是使用setProgram() + start(),适用于更灵活的场景。同时提供代码示例,帮助Qt初学者快速适应新版API,优化进程启动方式,提升代码可维护性。 在写一个Qt程序的时候,按照B站的教程直接写的进程start,但是提示这个方法已经被deprecated('start' is deprecated. QProcess::start(const QString &program, const QStringList &arguments, QIODevice::OpenMode mode = ReadWrite)),虽然帮助文档已经写的很清楚了,但是作为一名初学者,还是想写个笔记mark一下。 出现这个报错的提示图片 修复这个问题有两个选择: (1)一个是使用带参数列表的 start 函数。从提示看,后面已经写到const QStringList,也就是要跟个参数列表。 void Widget::on_CommitButton_clicked() { // 获取lineedit数据 QString program = ui->cmdlineEdit->text(); // 创建process对象 QProcess *myProcess = new QProcess(this); myProcess->start(program, QStringList()); // 传入空参数列表 }(2)使用 setProgram 和 start 分开的方式。 void Widget::on_CommitButton_clicked() { // 获取lineedit数据 QString program = ui->cmdlineEdit->text(); // 创建process对象 QProcess *myProcess = new QProcess(this); myProcess->setProgram(program); myProcess->start(); }推荐使用第一种方式,因为它更简洁。如果你需要传递参数给程序,可以在 QStringList 中添加参数。这种改变是为了让进程启动的API更加明确和灵活,特别是在需要传递参数的情况下。例如: myProcess->start("program", {"arg1", "arg2", "arg3"});