Alles rund um die Programmierung mit Qt
24dan
Beiträge: 274 Registriert: 26. Juni 2006 14:15
Wohnort: Hamburg
Beitrag
von 24dan » 10. Januar 2010 12:13
... 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 (16.23 KiB) 2080 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 » 10. Januar 2010 17:41
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 » 10. Januar 2010 17:49
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 » 10. Januar 2010 18:18
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 » 10. Januar 2010 19:35
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)