Friday, April 8, 2011

Using the QMDIArea with qt4.4

Hi I'm using the QMdiArea in qt4.4. What I'm doing: If a new project is created, I add a number of subwindows to a QMdiArea. And I'd like to disallow the user to close a subwindow during the runtime. The subwindows should be closed, if the hole application is closed or if a new project is created.

As I have seen in the qt-documentaion, there is no flag to apply this functionality.

How can I do this?

Thanx for your answers.

From stackoverflow
  • Could you sub-class QMdiArea and override the default closeActiveSubWindow/closeAllSubWindows methods to not close the window when user requests it?

  • You'd do this the same as for a top-level window: process and ignore the QCloseEvent it sent. QMdiArea::closeActiveSubWindow/QMdiArea::closeAllSubWindows just call QWidget::close, which sends a closeEvent and confirms that it was accepted before proceeding.

    You can process this event by subclassing QMdiSubWindow and reimplementing QWidget::closeEvent, or by using an event filter to intercept it..

0 comments:

Post a Comment

Note: Only a member of this blog may post a comment.