首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

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

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

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函数

热点排行