无法连接QT信号

Dr *_*Deo 1 c++ qt4 signals-slots

我是QT的新手,并试图创建一个自定义信号,告诉我已插入可移动磁盘. 这就是我做的

MainWindow.h

class MainWindow
{   
    QOBJECT
    ..
    ..
    signals:
    void qm_diskInserted(QString &);
    public slots:
    void addItemToList(QString &);
    ...
}
Run Code Online (Sandbox Code Playgroud)

MainWindow.cpp

void MainWindow::onDeviceChange(MSG * msg)
{
   //code for detecting device here
   QString &driveLetter= getDriveLetter(mask);
   //try to emit QT signal here
   emit qm_diskInserted(driveLetter);
}
MainWindow::MainWindow(QWidget * parent=NULL)
{
   ui.setupUi(this);
   QObject::connect(this, SIGNAL(qm_diskInserted(QString&)), this, SLOT(addItemToList(QString &));
}
void MainWindow::addItemToList(QString &)
{
   //more stuff here
}
Run Code Online (Sandbox Code Playgroud)

某种方式插槽addItemToList()没有被调用,我必须手动调用它.
我究竟做错了什么?

谢谢.PS:

顺便问一下有什么方法可以调试信号吗?
即我怎么能确定发出信号?

and*_*ers 6

它至少应该是Q_OBJECT.我想你还需要继承QMainWindow.