• 5266阅读
  • 4回复

[讨论]QT 求助 [复制链接]

上一主题 下一主题
离线feng_mailx
 
只看楼主 倒序阅读 楼主  发表于: 2013-05-24

Exit = new QAction(tr("Exit"),this);
Exit->setStatusTip(tr("do you wang't to close the sort?"));
connect(Exit,SIGNAL(triggered()),this,SLOT(closeEvent()));


在mainwindow.h文件里面声明:
protected:    void closeEvent(QCloseEvent *event);


在mainwindow.cpp里面实现:
void MainWindow::closeEvent(QCloseEvent *event)
{
   if(okTocontinue())
{        writeSetting();    
    event->accept();    
} else {  
     event->ignore();  
  }
}


电脑有次卡了  注销之后 在运行就出现:

[font='Courier']Object::connect: No such slot MainWindow::closeEvent() in ..\mainwindow\mainwindow.cpp:54
[font='Courier']Object::connect:  (receiver name: 'MainWindow')
[font='Courier']QWidget::setWindowModified: The window title does not contain a '[*]' placeholder


把之前的makefile什么文件删除了也还是这样,这是什么问题 啊?





离线jdwx

只看该作者 1楼 发表于: 2013-05-24
回 楼主(feng_mailx) 的帖子
connect(Exit,SIGNAL(triggered()),this,SLOT(closeEvent()));
closeEvent是QWidget的虚函数,用于关闭窗口时需要做的一些工作,例如:提示文件没有保存。
应该是:close()。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线feng_mailx
只看该作者 2楼 发表于: 2013-05-24
那我改成这样:connect(Exit,SIGNAL(triggered()),this,SLOT(close()));

它这里的close(),会自己去调用这个closeEvent吗? 这个closeEvent()  我重新实现了它。
离线jdwx

只看该作者 3楼 发表于: 2013-05-24
回 2楼(feng_mailx) 的帖子
当然会去调用closeEvent。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
离线feng_mailx
只看该作者 4楼 发表于: 2013-05-24
刚那问题解决了,现在一个signals的问题。  

这个modified();声明在一个.h文件中signals下面,现在也是找不到,对这个modified()不理解。

槽函数: connect(spreadsheet,SIGNAL(modified()),
            this,SLOT(spreadsheetModified()));

错误:
Object::connect: No such slot MainWindow::spreadsheetModified() in ..\mainwindow\mainwindow.cpp:183
Object::connect:  (receiver name: 'MainWindow')




快速回复
限100 字节
 
上一个 下一个