0
main.cpp中:如何從按鈕運行線程?
#include "mainwindow.h"
#include "myobject.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
QThread cThread;
MyObject cObject;
cObject.doSetup(cThread);
cObject.moveToThread(&cThread);
// cThread.start();
return a.exec();
}
mainwindow.cpp:
#include "mainwindow.h"
#include "ui_mainwindow.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
// cThread.start();
}
我想開始on_pushButton_clicked線程()。爲了做到這一點,我必須通過參數將cThread傳遞給mainwindow,對吧?我只是想要有人確認,確保我做對了。
問題是,如果我這樣做,那麼用戶可能能夠啓動多個線程(我有一個if語句來檢查一個alreadyStarted布爾值)。有任何想法嗎? – user2267771 2013-04-10 20:11:40
然後你的第一個方法是正確的。無論如何,如果它是二進制狀態,你可以使用checkbutton來擺脫你的支票。 – Adrian 2013-04-10 20:13:36
通過checkbutton,你的意思是複選框?或者你的意思是以某種方式點擊時禁用按鈕? – user2267771 2013-04-10 20:15:22