Ich habe folgendes Problem:
Ich habe eine QMdiArea und darin sind 2 Widgets. Diese sollen jetzt jedoch nicht verschiebbar sein. Ich habe eine Lösung gefunden, indem ich bei den Fenstern oben den Rahmen entferne, dann kann man sie auch nicht mehr verschieben. Allerdings würde ich den Rahmen gerne behalten. Weiß da zufällig jemand eine Lösung?
Ziel soll sein, dass ich in der MdiArea 2 Fenster inklusive Rahmen habe, die sich allerdings nicht verschieben lassen.
[gelöst] SubWindow in MdiArea nicht verschiebbar machen
[gelöst] SubWindow in MdiArea nicht verschiebbar machen
Zuletzt geändert von TSS am 14. Februar 2010 23:26, insgesamt 1-mal geändert.
Das war auch das erste, was ich versucht habe. Nur das Problem beim moveEvent ist, dass es erst ausgelöst wird, wenn das Verschieben schon geschehen ist. Auf jeden Fall hat es nichts bewirkt. Ich habe auch schon versucht, es wieder zurückzuschieben, sobald das moveEvent ausgelöst wird, was natürlich zu einer Endlosschleife führt. Dann habe ich davor ne Überprüfung gemacht, ob es denn auch wirklich bewegt wurde, um die Endlosschleife abzufangen, dann ist das Programm einfach ohne Meldung abgestürzt.
Hier mal mein Versuch im moveEvent
Hier mal mein Versuch im moveEvent
Code: Alles auswählen
void MySubWindow::moveEvent(QMoveEvent *moveEvent)
{
if(moveEvent->oldPos()!=moveEvent->pos())
{
this->move(moveEvent->oldPos());
}
}Ich habe das Problem jetzt gelöst denke ich. Die Absturzursache lag bei
Ich lasse der Klasse im Konstruktor jetzt einen festen Punkt mitgeben, und diesen übergebe ich dann beim move(). Der Rest ist gleich geblieben, aber jetzt geht es.
Code: Alles auswählen
this->move(moveEvent->oldPos());