我的窗口关闭时总是出现段错误,而且我的QMessageBox对象关闭时,不主窗口也一起关闭了,不知道怎么回事,请大家帮帮忙~
程序部分:
main函数部分
QApplication a( argc, argv )
……
MyMainWindow w;
w.show();
a.connect( &a, SIGNAL( lastWindowClosed() ), &a, SLOT( quit() ) );
主视窗部分
.h文件中的虚构函数声明:
class MyMainWindow : public QMainWindow
{
MyMainWindow( QWidget* parent = 0, const char* name = 0, WFlags fl = WType_TopLevel | WStyle_NormalBorder | WDestructiveClose );
……
proteced slots:
void closedEvent( QCloseEvent* );
};
.cpp文件中部分
void MyMainWindow::closedEvent( QCloseEvent* e )
{
COM1.close(); //注:COM1是QFile对象,定义:QFile COM1( “/dev/ttyS0” );即Linux下的串口1
e->accept();
}
我的QMessageBox对象是在主窗口(MyMainWindow)的一个子窗口(StaticInfoShow,一个继承QDialog的窗口)上定义的,定义如下:
……
QMessageBox msgBox( parent, “MyMsgBox” ); //注:parent为StaticInfoShow类的对象
msgBox.setIcon( QMessageBox::Critical );
msgBox.setText( tr( “错误” ) );
msgBox.exec();
……
运行时,QMessageBox上只有一个OK按钮,窗口上有最大化和关闭,点OK按钮或者关闭按钮时,所有窗口都关掉了,还有一个段错误。
这个怎么解决啊?怎么才能让其他窗口不一起关闭啊?