您的位置:首页 > 健康 > 美食 > 彭水网站建设推广_六安房产网_信息流广告投放流程_seo 工具推荐

彭水网站建设推广_六安房产网_信息流广告投放流程_seo 工具推荐

2025/1/9 22:34:11 来源:https://blog.csdn.net/Yungoal/article/details/145005147  浏览:    关键词:彭水网站建设推广_六安房产网_信息流广告投放流程_seo 工具推荐
彭水网站建设推广_六安房产网_信息流广告投放流程_seo 工具推荐

上篇QT 下拉菜单设置参数 起始端口/结束端口/线程数量 端口扫描4-CSDN博客

在扫描结束后设置Scan按钮为可用,并提示扫描完成

在 MainWindow 类中添加一个成员变量来跟踪正在进行的扫描任务数量:

在 MainWindow 的构造函数中初始化 activeScanTasks

在按下scan之后重置任务计数

每扫描一次就++

扫描完成后会发送信号给槽函数,在槽函数中实现提示消息和重启按钮功能

每完成一个扫描任务tasks--

全部完成之后task==0

在扫描时显示扫描进度

在 Qt Designer 中,向 MainWindow 添加一个 QProgressBar,并设其 objectName 为 progressBar。确保它的范围是从 0 到 100。

赋初值

计算实际值

点击scan重置进度条

扫描完成之后,发送信号-->在 recv_result 槽函数中,更新进度条的值

使用 invokeMethod 确保在主线程中更新 UI

最初将continue按钮隐藏,点击stop按钮之后之后显示continue按钮,按下continue按钮之后继续扫描

点击scan时

void MainWindow::on_stopButton_clicked()  
{  // 停止所有正在运行的任务  threadpool->clear(); // 清理线程池中未执行完的任务  ui->pushButton_Scan->setEnabled(true); // 重新启用扫描按钮  isPaused = true; // 设置为暂停状态  ui->pushButton_Continue->setVisible(true); // 显示继续按钮  
}
void MainWindow::on_pushButton_Stop_clicked()
{// 停止所有正在运行的任务  threadpool->clear(); // 清理线程池中未执行完的任务  ui->pushButton_Scan->setEnabled(true); // 重新启用扫描按钮  isPaused = true; // 设置为暂停状态  ui->pushButton_Continue->setVisible(true); // 显示继续按钮 
}
void MainWindow::on_pushButton_Continue_clicked()  
{  isPaused = false; // 设置为继续扫描状态  ui->pushButton_Continue->setVisible(false); // 隐藏继续按钮  ui->pushButton_Stop->setEnabled(true); // 启用停止按钮  // 继续扫描未完成的任务  for (int i = currentPort; i < totalPorts; ++i) {  if (!isPaused) { // 检查是否已暂停  ScanTask *task = new ScanTask(ui->lineEdit_IP->text(), i);  connect(task, &ScanTask::send_scan_signal, this, &MainWindow::recv_result);  threadpool->start(task);  activeScanTasks++;  currentPort++; // 更新当前扫描的端口  QThread::msleep(12);  } else {  break; // 如果已暂停,退出循环  }  }  
}

每次扫描完成(一次),槽函数中更新当前扫描的端口

槽函数void MainWindow::recv_result(int port, bool isOpen) 中,在扫描完成后变换暂停状态

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com