没有从对话框收到信号

时间:2018-01-13 14:58:23

标签: qt modal-dialog signals-slots

class Table : public QTableWidget
{
  Q_OBJECT

  signals:
  void sigStatusMsg( const QString& msg );
};

//----------------------------------------

class ShowTableDlg : public QDialog
{
  Q_OBJECT

  public slots:
  void slotStatusMsg( const QString& msg );

  signals:
  void sigStatusMsg( const QString& msg );
}

void ShowTableDlg::slotStatusMsg( const QString& msg )
{
  m_statusBar->showMessage( msg );
  emit sigStatusMsg( msg );
}

//------------------------------------------

class TopDialog : public QDialog
{
  Q_OBJECT

  public slots:
  void slotCallShowTable();
  void slotStatusMsg( const QString& msg );
}

void TopDialog::slotCallShowTable()
{
  ShowTableDlg* dlg { new ShowTableDlg };
  connect( dlg, &ShowTableDlg::sigStatusMsg, 
           this, &TopDialog::slotStatusMsg );
  dlg->exec();
}

ShowTableDlg正确显示消息,TopDialog中的插槽永远不会 到达。也许我太盲目或太愚蠢。原始代码要长得多,但我把它缩小到这个小的摘录,它显示了主要结构。编译或执行期间没有错误或警告。

我的错误在哪里或什么地方?

0 个答案:

没有答案