• 5900阅读
  • 1回复

为什么主窗口和QMessageBox窗口一起关掉 [复制链接]

上一主题 下一主题
离线帅坤
 
只看楼主 倒序阅读 楼主  发表于: 2010-07-09
我的窗口关闭时总是出现段错误,而且我的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按钮或者关闭按钮时,所有窗口都关掉了,还有一个段错误。
这个怎么解决啊?怎么才能让其他窗口不一起关闭啊?
离线帅坤
只看该作者 1楼 发表于: 2010-07-10
大家帮帮忙~
这个QMessageBox窗口,如果先点击最大化,再点几下其它窗口(虽然其它窗口现在不响应),然后再点击OK按钮,有时候,就只关掉QMessageBox窗口,而主窗口不一起关闭。
但是多数情况下还是所有窗口一并关掉,这是怎么回事啊?
快速回复
限100 字节
 
上一个 下一个