-
在UI界面中调用QProcess中的waitForStarted()造成ui不响应
2017-07-17 20:41:16在UI界面中调用QProcess中的waitForStarted()造成ui不响应 案例:在UI界面中,当按下按钮时,利用QProcess调用外部程序下载hex文件到arduino板子上; 然而,在使用waitForStarted()检测进程是否开始后,在它之后...在UI界面中调用QProcess中的waitForStarted()造成ui不响应
案例:在UI界面中,当按下按钮时,利用QProcess调用外部程序下载hex文件到arduino板子上;
然而,在使用waitForStarted()检测进程是否开始后,在它之后的语句可以执行,但需要显示到UI界面的信息却显示不了,这是因为waitForStarted()造成了当前UI界面不能响应了,直到waitForFinished()之后,UI界面才能响应。
这个时候,可以利用信号与槽来解决这个问题:
connect(p,SIGNAL(started()),this,SLOT(uploadStarted()));
在uploadStarted()里面实现在UI界面显示信息就可以了。
既然这样,我又想把waitForFinished()也转换成信号与槽的形式,开始调用了finished()信号,报错,查了资料才知道这个信号改成finished(int exitCode, QProcess::ExitStatus)了,如下:
connect(p,SIGNAL(finished(int, QProcess::ExitStatus)),this,SLOT(uploadFinished(int, QProcess::ExitStatus)));
-
QProcess time out
2019-07-18 00:02:14QProcess详解QProcessbool QProcess::waitForStarted(int msecs = 30000)time out 错误分析QProcess time out错误解决 QProcess bool QProcess::waitForStarted(int msecs = 30000) time out 错误分析 默认情况下,... -
Qt QProcess执行Linux 命令行的方法
2020-02-08 17:45:351、QProcess 打开一个bash终端,可以执行一般的命令,主要实现步骤如下 m_proces_bash = new QProcess; m_proces_bash->...waitForStarted(); connect(m_proces_bash,SIGNAL(readyReadStandardOutput()),th...1、QProcess 打开一个bash终端,可以执行一般的命令,主要实现步骤如下
m_proces_bash = new QProcess; m_proces_bash->start("bash"); m_proces_bash->waitForStarted(); connect(m_proces_bash,SIGNAL(readyReadStandardOutput()),this,SLOT(readBashStandardOutputInfo())); connect(m_proces_bash,SIGNAL(readyReadStandardError()),this,SLOT(readBashStandardErrorInfo()));
2、向终端发送命令
void MainWindow::on_pushButton_bashrun_clicked() { QString strCmd = ui->lineEdit_bashcmd->text(); ui->textEdit_bashmsg->append("Linux:~$ "+strCmd); m_proces_bash->write(ui->lineEdit_bashcmd->text().toLocal8Bit() + '\n'); ui->lineEdit_bashcmd->clear(); }
3、接收终端返回
void MainWindow::readBashStandardOutputInfo() { QByteArray cmdout = m_proces_bash->readAllStandardOutput(); if(!cmdout.isEmpty()){ ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout)); } QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar(); scroll->setSliderPosition(scroll->maximum()); } void MainWindow::readBashStandardErrorInfo() { QByteArray cmdout = m_proces_bash->readAllStandardError(); if(!cmdout.isEmpty()){ ui->textEdit_bashmsg->append(QString::fromLocal8Bit(cmdout)); } QScrollBar* scroll = ui->textEdit_bashmsg->verticalScrollBar(); scroll->setSliderPosition(scroll->maximum()); }
4、当命令需要超级权限时,sudo xx 需要修改为sudo -S xx
例如:(1)ls 执行正常
(2)sudo ls 执行失败
(3)执行sudo -S ls 执行成功
-
Qt之启动外部程序
2019-06-21 14:15:08QStringList arguments; arguments << "/c" <<"start cmd.exe"; QProcess process(nullptr);...process.startDetached("cmd.exe",arguments);...process.waitForStarted(); process.waitForFinished(); pr...QStringList arguments; arguments << "/c" <<"start cmd.exe"; QProcess process(nullptr); process.startDetached("cmd.exe",arguments); process.waitForStarted(); process.waitForFinished(); process.close();
QProcess process(this); process.start("cmd.exe"); process.write ("start cmd.exe\n\r"); process.write ("exit\n\r"); process.waitForFinished(); process.close();
使用cmd来删除本地文件:
QProcess process(this); process.start("cmd.exe"); process.write ("del E:\\a.txt\n\r"); process.write ("exit\n\r"); process.waitForFinished(); process.close();
-
qt 进程 线程 detach --- 无限重启程序
2020-08-26 00:40:23#include "SoftWareUpdate.h" #include <QApplication> #include <QDesktopWidget> // when need updater update void updaterUpdate() { ... // p.waitForStarted(2); //sleep(... -
qt操作cmd_qt执行cmd命令
2021-01-14 15:47:25源地址:http://blog.csdn.net/hn307165411/article/details/6858614运行 route、ipconfig 肯定没问题QProcess p(0);...p.waitForStarted();p.waitForFinished();qDebug()<QProcess p(0);p.start("ipconfig");p... -
qt执行命令行失败_qt执行cmd命令
2020-12-19 17:53:17源地址:http://blog.csdn.net/hn307165411/article/details/6858614运行 route、ipconfig 肯定没问题QProcess p(0);...p.waitForStarted();p.waitForFinished();qDebug()<QProcess p(0);p.start("ipconfig");p... -
QT获取CPU ID
2018-01-23 21:51:56直接贴函数了(包含头文件#include ): QString MainWindow::GetCPUManID() { QString cpu_id = ""; ... p.start("wmic CPU get ProcessorID");... p.waitForStarted(); p.waitForFinished -
在Qt中调用CMD命令示例
2019-11-26 15:44:31QProcess p(0); p.start("cmd", QStringList()<<"/c"<<"ping www.baidu.com"); p.waitForStarted(); p.waitForFinished(); QString strTemp=QString::fromLocal8Bit(p.readAllStandard... -
qt 获取当前程序运行路径_QT 总结(三) 1.Qt 运行 bat 文件 QProcess 2.获取当前文件路径...
2021-01-14 12:20:421.Qt 运行 bat 文件 QProcessQProcess p;p.start("cmd.exe", QStringList() << "/c" <<...if (p.waitForStarted()){p.waitForFinished();qDebug() << p.readAllStandardOutpu... -
QT 在linux环境执行自动关机的操作
2021-02-12 06:05:33QT 在linux环境执行自动关机的操作 QProcess pro; //通过QProcess类来执行第三方程序 QString cmd = QString("shutdown -h 1");...pro.waitForStarted(); pro.waitForFinished(); close(); //关闭上位机 ... -
在Qt中调用CMD命令
2017-09-21 21:56:19代码: [plain] view plain copy QProcess p(0); p.start("cmd", QString...p.waitForStarted(); p.waitForFinished(); QString strTemp=QString::fromLocal8Bit(p.readAllSta -
Qt中起一个线程执行windows可执行程序
2015-12-18 10:28:58QString callProcess( QString & cmd) { QProcess process; process.start(cmd); process.waitForStarted(); while(false == process.waitForFinished()); return process.readAll(); } -
Qt修改本机IP地址与获取本机IP地址
2017-03-30 10:34:21修改本机IP: QString set="netsh interface ip set address \"本地连接\" static IP地址 子网掩码 网关; QProcess p;... p.waitForStarted(); p.waitForFinished(); 获取本机IP: QString GetCurrentIp -
Qt 调用 chm格式的文件
2019-08-01 14:29:35在windows平台下, 有一个系统默认的,打开chm格式文件的exe. —— hh.exe ...process.waitForStarted(); 这样, 就可以打开帮助文件。 定位操作 帮助文档通常会拥有多页, 针对程序中的不... -
Qt执行cmd命令
2018-10-17 22:45:08运行route命令 QProcess p(0);...p.waitForStarted(); p.waitForFinished(); qDebug()<<QString::fromLocal8Bit(p.readAllStandardError()); 运行ipconfig命令 QProcess p(0); p.start("ipconfig... -
Run exe, and get result
2020-12-17 16:12:45QProcess p(0); p.start("cmd", QStringList()<... p.waitForStarted(); p.waitForFinished(); QString strTemp=QString::fromLocal8Bit(p.readAllStandardOutput()); qDebug()<<"TT1 "... -
QProcess::start调用console application时,出现waitForFinished超时
2018-02-17 22:25:26调用waitForStarted执行ok调用waitForBytesWritten,返回值为false,QProcess::ProcessError为5,即QProcess::UnknownError。调用waitForFinished,函数超时,且SqlFormatter.exe进程掉死。网上搜索无... -
QT 随笔 QProcess中waitForFinished的坑
2020-11-02 09:24:05文章为个人创作,如转载请标注。 当我们执行一个超过30s的动作的时候,int msecs = 30000,那么就会直接finish,像遇到解压文件这种...p.waitForStarted(); p.waitForFinished(); //此处其实是有一个缺省参数的,... -
QT 通过Process调用外部执行文件
2019-01-16 17:03:07由于项目中使用到多种不同的驱动文件,考虑到程序的兼容性,将不同的驱动文件做成单独的执行文件,在主程序中调用驱动执行文件。 打开外部程序的方法: QProcess *process=new ...waitForStarted(); FilePath... -
Windos系统下怎样察觉用户正在修改系统时间
2019-10-25 22:23:35其实我们可以通过命令行的方式,查询系统进程来发现用户正在修改系统时间,这对于不想用户修改时间的程序来说,是一种不错的方法。...p.waitForStarted(); p.write("process where caption=\"rundll32... -
Qt 打开并读取文件内容的方法
2017-08-28 08:43:341,进程打开 QProcess p(0) ...p.waitForStarted(); p.waitForFinihed(); QString str = p.readAllStandardOutput(); str = str.mid(2,8);//取第二到第八个字符 2,文件系统打开 char buf[1024] = { -
Qt 中用QProcess调用cmd命令
2019-03-31 21:55:06项目做到一定阶段,常常须要在原来的project上调用外部程序。 Qt为此提供了QProcess类,QProcess可用于完毕启动外部程序,并与之交互通信。 基本用法: QProcess p(0); p.start("cmd", ... p.waitForStarted(... -
qt执行cmd命令
2018-05-29 17:27:00运行 route、ipconfig 肯定没问题Copy code QProcess p(0);... p.waitForStarted(); p.waitForFinished(); qDebug()<<QString::fromLocal8Bit(p.readAllStandardError());Copy cod... -
QProcess 读取子进程的标准输出得不到任何内容的原因和解决办法
2018-03-21 11:17:392018年3月21日11:14:11 原因 根据文档说明,QProcess启动子进程后必须调用对应的方法等待子进程完成启动并等待子进程有数据可读,才能进行...waitForStarted(-1)) { while(apInstance->waitForReadyR... -
QT 嵌入exe应用程序 并获取鼠标事件 mouse keyboard event
2017-09-20 10:45:07QT 嵌入第三方程序方法: QProcess *Process = new QProcess(this); //Process必须为指针,不然对象销毁时第三方exe会被关闭 Process->start(“Everything\\... if (Process->waitForStarted()) { S -
linux文件是否被当前进程外的其他进程打开
2015-06-08 16:03:25lsof命令的用法 QProcess 调用shell命令,并获取标准输出内容: QString pPath = "/tmp/1.txt"; QProcess commandProcess;... commandProcess.start("lsof", QStringList... commandProcess.waitForStarted();
收藏数
46
精华内容
18
-
全局绝热搜索算法的电路模型
-
P1005 [NOIP2007 提高组] 矩阵取数游戏(区间dp+__int128)
-
git-关联远程仓库
-
RootCluster.github.io:组织网站-源码
-
云中有效的查询分组策略
-
使用 Linux 平台充当 Router 路由器
-
Mac启动Eclipse提示Failed to create the Java Virtual Machine
-
Linux — “linux关机重启命令(CentOS版)”
-
将和声搜索算法与杜鹃搜索混合,以进行全局数值优化
-
自动化测试Python3+Selenium3+Unittest
-
Unity 热更新技术-ILRuntime
-
MaxScale 实现 MySQL 读写分离与负载均衡
-
FTP 文件传输服务
-
nparashar150:没什么了:)-源码
-
什么是SYSML:registered:?
-
NFS 网络文件系统
-
Session的使用
-
leetcode 203. 移除链表元素
-
spark大数据分析与实战
-
MySQL你该了解的那些事【服务端篇】