MainWindow Randlos Bewegen MouseEvent

Alles rund um die Programmierung mit Qt
Antworten
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

MainWindow Randlos Bewegen MouseEvent

Beitrag von 24dan »

... habe mir ein rahmenloses MainWindow gezaubert.

Problem: Kann dies jedoch nur über den "grünen" Bereich auf dem Bildschirm verschieben.
Würde es gerne auch über die rot makierten Bereich verschieben können.

Benutze folgenen Funktionen dafür:

Code: Alles auswählen

/*! MouseMove fuer das Bewegen des Fensters
\param event QMouseEvent Mouse Event
*/
void MainWindow::mouseMoveEvent(QMouseEvent *event)
{
    if (event->buttons() & Qt::LeftButton) {
        move(event->globalPos() - m_dragPosition);
        event->accept();
    }
}



/*! MousePressed fuer das Bewegen des Fensters
\param event QMouseEvent Mouse Event
*/
void MainWindow::mousePressEvent(QMouseEvent *event)
{
    if (event->button() == Qt::LeftButton) {
        m_dragPosition = event->globalPos() - frameGeometry().topLeft();
        event->accept();
    }
}
Dateianhänge
moveMe.JPG
moveMe.JPG (16.23 KiB) 2082 mal betrachtet
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Dann verrate uns doch mal wie du den Rahmen wegbekommen hast.
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

Na gut :

so....

Code: Alles auswählen

    Qt::WindowFlags flags = 0;
    flags = Qt::CustomizeWindowHint;
    this->setWindowFlags(flags);
[/code]
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Warum nimmst du dem User den Rahmen weg und somit die Möglichkeit, das Fenster zu verschieben/resizen usw.? Und dann implementierst du das alles wieder selbst nach?!?

Dein Code trifft nur auf das QMainWidget zu. Aber nicht auf die QMenuBar, das centralWidget und sonstige Widgets. Also auf jeden Fall viel Spaß mit dem eventFilter...
24dan
Beiträge: 274
Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg

Beitrag von 24dan »

ehrlich gesagt hatte ich keine andere Möglichkeit gesehen den hässlichen blauen WindowsFensterrahmen weg zu bekommen.

Songbird hat das übrigens genauso für ausreichend befunden.

Das war alles...

Wie kann ich die Events auf das MenuBar abfangen?
"Der erste Trunk aus dem Becher der Naturwissenschaften macht atheistisch, aber auf dem Grund des Bechers wartet Gott."
(W. Heisenberg)
Antworten