我在C++中使用Visual Studio 2013中的Qt。我正嘗試將信號連接到插槽。問題是信號被髮送,但插槽功能從未被調用,我不知道發生了什麼。此代碼在早期工作,但在將代碼從32位的Visual Studio 2012遷移到64位的Visual Studio 2013並做了一些更改後,它不再起作用。它會打印調試語句:發送前,發送圖像和連接之前,但不會打印出接收到的圖像。有人可以幫忙嗎?Qt信號插槽:信號已發送,但未插入插槽
Streamer.h
signals:
//Signal to output frame to be displayed
void processedImageStream(const vector<QImage> &imgs, const QImage &image2, const QImage &image3, const QImage &image4);
Streamer.cpp在run()函數
qDebug() << "before sending";
emit processedImageStream(imgs,imgIntel, imgIntelDepth, imgIntelIR);
qDebug() << "images sent!";
MainWindow.h
private slots:
//Display video frame in streamer UI
void updateStreamerUI(const vector<QImage> &imgs, const QImage &imgIntel, const QImage &imgIntelDepth, const QImage &imgIntelIR);
private:
Streamer* myStreamer;
MainWindow.cpp
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
{
//Streamer initialization
myStreamer = new Streamer();
QObject::connect(myStreamer, SIGNAL(processedImageStream(vector<QImage>, QImage, QImage, QImage)), this, SLOT(updateStreamerUI(vector<QImage>, QImage, QImage, QImage)));
qDebug() << "connected";
ui.setupUi(this);
}
//slot for when new images are sent from the Streamer class
void MainWindow::updateStreamerUI(const vector<QImage> &imgs, const QImage &imgIntel, const QImage &imgIntelDepth, const QImage &imgIntelIR) {
qDebug() << "images received!";
//rest of the code
}
什麼是QObject的返回值::連接()? – JKSH 2014-09-10 23:23:38
返回值爲true,所以必須連接 – user3838815 2014-09-10 23:26:28