2016-06-10 22 views
0

Ich habe ein QMainWindow und einige Kind-Widgets darin. Das QMainWindow ist rahmenlos und transparent. Ich habe eine QPushbutton in der Mitte des Fensters gehalten, um das Fenster auf dem Bildschirm zu ziehen.Wie kann ich verhindern, dass mein QMainWindow über die Kanten des Desktop-Bildschirms in Qt hinausgeht?

Wenn ich das Fenster verschiebe, geht es über die Bildschirmkanten des Desktops hinaus, was ich für ein normales Fensterverhalten halte.

Ich möchte mein QMainWindow nur innerhalb des sichtbaren Desktop-Bildschirmbereichs bewegen und nicht zulassen, dass es die Bildschirmkanten des Desktops verlässt.

Wie kann ich das tun?

Antwort

0

Versuchen Sie, void QWidget::moveEvent(QMoveEvent *event) zu überschreiben. Vergleichen Sie in diesem Handler die Fensterrahmenkoordinaten mit den Bildschirmgrenzenkoordinaten und verschieben Sie das Fenster wieder auf die gewünschten Grenzen, wenn die Bildschirmgrenzen überschritten werden.

Achten Sie darauf, keine unendliche Rekursion zu erstellen.

Verwandte Themen