qt button 多线程
时间: 2023-07-09 19:18:50 浏览: 309
QT多线程
5星 · 资源好评率100%
在 Qt 中,可以使用 `QThread` 类来创建多线程。为了在一个按钮的单击事件中启动一个新线程,您可以将创建线程的代码放在按钮的槽函数中。以下是一个使用 `QThread` 和 `QPushButton` 的示例,该示例在按钮单击时启动一个新线程:
```cpp
#include <QtWidgets/QApplication>
#include <QtWidgets/QPushButton>
#include <QtCore/QThread>
class WorkerThread : public QThread {
Q_OBJECT
public:
void run() {
// 这里是新线程执行的代码
// ...
}
};
class MainWindow : public QWidget {
Q_OBJECT
public:
MainWindow(QWidget *parent = nullptr) : QWidget(parent) {
QPushButton *button = new QPushButton("Start", this);
connect(button, &QPushButton::clicked, this, &MainWindow::onButtonClicked);
}
private slots:
void onButtonClicked() {
WorkerThread *thread = new WorkerThread;
thread->start();
}
};
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
#include "main.moc"
```
在上面的示例中,我们创建了一个名为 `WorkerThread` 的类,该类继承自 `QThread`。在 `run()` 函数中,我们可以编写将在新线程中执行的代码。在 `MainWindow` 类的构造函数中,我们创建了一个 `QPushButton`,并将其连接到名为 `onButtonClicked()` 的槽函数。在 `onButtonClicked()` 函数中,我们创建了一个新的 `WorkerThread` 对象,并调用其 `start()` 函数以启动新线程。
阅读全文