ToB企服应用市场:ToB评测及商务社交产业平台
标题:
QT实现 端口扫描停息和继续功能 3
[打印本页]
作者:
锦通
时间:
2025-1-7 23:29
标题:
QT实现 端口扫描停息和继续功能 3
上篇QT给端口扫描工程增长线程2-CSDN博客
为按钮pushButton_Stop添加clicked变乱,功能为停息扫描,并在停息后显示继续按钮,点击继续按钮之后继续扫描
1.更新UI
添加继续按钮
点击转到槽则会自动声明
2. 更新 MainWindow.h
须要新增的部门
private slots:
void on_pushButton_Stop_clicked(); // 暂停按钮点击事件
void on_pushButton_Continue_clicked(); // 继续按钮点击事件
private:
bool isPaused; // 用于跟踪扫描是否暂停
复制代码
3. 更新 MainWindow.cpp
在 MainWindow.cpp 中实现停息和继续的功能。
3.1 初始化成员变量
在构造函数中初始化 isPaused 变量,并设置 pushButton_Continue 为隐藏状态:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow),
isPaused(false) // 初始化为未暂停状态
{
ui->setupUi(this);
ui->pushButton_Continue->setVisible(false); // 隐藏继续按钮
}
复制代码
3.2 实现停息功能
在 on_pushButton_Stop_clicked() 槽函数中,设置 isPaused 为 true,并隐藏停息按钮,显示继续按钮:
void MainWindow::on_pushButton_Stop_clicked() {
isPaused = true; // 设置为暂停状态
ui->pushButton_Stop->setEnabled(false); // 禁用暂停按钮
ui->pushButton_Continue->setVisible(true); // 显示继续按钮
}
复制代码
3.3 实现继续功能
在 on_pushButton_Continue_clicked() 槽函数中,设置 isPaused 为 false,并隐藏继续按钮,启用停息按钮:
void MainWindow::on_pushButton_Continue_clicked() {
isPaused = false; // 设置为继续状态
ui->pushButton_Stop->setEnabled(true); // 启用暂停按钮
ui->pushButton_Continue->setVisible(false); // 隐藏继续按钮
// 继续扫描的逻辑
// 这里可以调用一个函数来继续扫描
continueScanning();
}
复制代码
4. 修改扫描逻辑
在 MyThread 类中,您须要修改扫描逻辑,以便在扫描过程中查抄 isPaused 状态。假如扫描被停息,则线程应等候,直到继续按钮被点击。
4.1更新 MyThread.h
4.2更新 MyThread.cpp
在 MyThread.cpp 中实现 setPaused 方法,并在 run() 方法中查抄 isPaused 状态:
void MyThread::setPaused(bool paused) {
isPaused = paused; // 更新暂停状态
}
复制代码
while (isPaused) {
msleep(100); // 暂停扫描,避免 CPU 占用过高
}
复制代码
4.3在主窗口中管理停息和继续
在点击停息和继续按钮时调用 setPaused 方法。
5.连接信号和槽
因为先点击扫描才会有背面的停息和继续,以是我选择把这个步骤放到扫描按钮点击变乱处理函数
void MainWindow:
n_pushButton_Scan_clicked()中
connect(ui->pushButton_Stop, &QPushButton::clicked, this, &MainWindow::on_pushButton_Stop_clicked);
connect(ui->pushButton_Continue, &QPushButton::clicked, this, &MainWindow::on_pushButton_Continue_clicked);
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4