读书人

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

发布时间: 2012-04-01 17:23:46 作者: rapoo

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

读书人网 >QT开发

热点推荐