-1
我在QT框架中的信号和插槽中有问题。 我的插槽不工作。 这里是代码。QT中的信号和插槽
connect(&th,SIGNAL(change()),this,SLOT(closeWindow()));
this->moveToThread(th);
closeWindow();
th.start();
“日” 是这样的类变种:
class Thread : public QThread
{
public :
Thread();
bool pause,flag;
QString URL;
QFile *mFile;
void run();
void RESUME();
void PAUSE();
bool Check();
bool Check2();
signals:
void change();
QString myTxt;
};
“变” 是信号
,这里是我的主窗口的代码:
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
Thread th;
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
public slots:
void closeWindow();
};
这里是MainWindow的构造函数
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
connect(&th,SIGNAL(change()),this,SLOT(closeWindow()));
th.start();
}
信号正常。但插槽不工作。 你能指导我吗?
我们不能在你的代码中的信号发射看到(我们甚至看不到*如果*它发出的)。您的第一个片段无法工作:变量th是一个对象,moveToThread将一个指针作为参数。请提供[MCVE](https://www.google.fr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwjt8d_-vJPOAhVPahoKHdeFBPUQFggeMAA&url=http%3A%2F%2Fstackoverflow.com %2Fhelp%2Fmcve与USG = AFQjCNEkKReghNZHBJSaky_hwPskMmG0ww&SIG2 = qJFt1v76F13Ikk_8pOIvMQ) – wasthishelpful
我发送的信号,现在你@wasthishelpful – sass
时是发出它的信号的工作(我的测试,并写一些代码到它,并且他们跑酷)@wasthishelpful – sass