Qt for wince窗口设置Qt::Popup出现异常

使用Qt for wince时,自己新建的窗口,继承QDialog,并设置setWindowFlags(Qt::Popup);使用时,出现了两个奇怪的现象。

现象1,调用dialog的exec()阻塞时,在dialog的界面上,长按操作,会导致exec()函数退出,窗口关闭,单击或者触摸移动等操作都正常。

现象2,在界面上进行操作弹出dialog,调用exec()阻塞时,如果这个时候,在定时器内,或者其他线程发送消息,再次弹出来个QMessageBox,也会导致原来的dialog的exec()函数退出,窗口关闭。如果第二次弹出的是自定义的也设置了setWindowFlags(Qt::Popup)的MessageBox(类似于系统的QMessageBox,继承QDialog),会导致界面出现明显的显示异常,dialog的父窗口也关闭了。

Popup用于弹出式菜单,可能是dialog消失的原因。

将DIALOG设置成setWindowFlags(Qt::FramelessWindowHint|Qt::WindowStaysOnTopHint )属性后,问题解决,但是又得解决设置引起的其他问题。

Qt for wince 真是多灾多难,移植,效率,BUG,支持等各方面的问题不断。

你可能感兴趣的:(dialog,qt,WinCE)