QT中信号与槽函数使用出的有关问题

QT中信号与槽函数使用出的问题
我是想实现关闭MainWindow的,但是这样不行,不知道问题的所在,还请大家帮忙

file1.cpp
void File::on_login_clicked()
{
  ......
  emit MainWindowClose();
}


mainwindow.cpp

MainWindow::MainWindow(QWidget *parent) :
  QMainWindow(parent),
  ui(new Ui::MainWindow)
{
  ui->setupUi(this);

  File1 * f=new File1();
  connect(f,SIGNAL(MainWindowClose()),this,SLOT(close()),Qt::AutoConnection);
}


------解决方案--------------------
检查:
1. 信号发射出去了吗?在on_login_clicked里打qDebug(),看看走到了吗。
2. 信号和槽连上了吗?看看程序运行期间Qt有没有信号和槽不匹配的提示。或者直接把MainWindowClose连到一个你自定义的槽上,打qDebug()看看有没有过来。
------解决方案--------------------
File1 * f=new File1();
connect(f,SIGNAL(MainWindowClose()),this,SLOT(close()),Qt::AutoConnection);
这里f应该还没有发信号MainWindowClose, 所以也就不会connect了。可以用个事件去触发这个信号试试,比如直接去调用on_login_clicked函数