Hallo Zusammen,
ich positioniere Fenster ohne Rahmen in meiner Anwendung. Jetzt konnte ich jedoch feststellen, das man mit der Maus das Fenster (inkl. Anwendung) an eine andere Position bewegen kann.
Kann man das Unterdrücken ? Wenn ja, wie.
Mouse Events belegen (überschreiben) scheint keinen Effekt zu haben.
Gruss R.
(gelöst) QMDISubWindow: Bewegen mit Mouse unterdrücken ...
(gelöst) QMDISubWindow: Bewegen mit Mouse unterdrücken ...
Zuletzt geändert von Ritchie am 29. Dezember 2010 18:54, insgesamt 1-mal geändert.
Weil es ein Teil der Anforderungen meiner Software ist, das Fenster nicht von Ihrem Platz verschoben werden können. Hierbei soll z.B. dem Bediener die Möglichkeit auf das OS zu kommen, genommen werden.
Auch die Gestaltung des Bildschirmaufbau soll im Bereich des Entwicklers bleiben.
Edit:
Ach ja, ich will diese Art der Funktion konfigurierbar machen
Gruss R.
Auch die Gestaltung des Bildschirmaufbau soll im Bereich des Entwicklers bleiben.
Edit:
Ach ja, ich will diese Art der Funktion konfigurierbar machen
Gruss R.
Die Möglichkeit, Unterfenster anordnen zu können, ist mMn. DAS zentrale Feature von QMdiArea. Wenn du das unterbinden willst, ist QMdiArea die Falsche Wahl. Wie upsala denke ich auch, du willst einfach Widgets frei auf einem parent-Widget platzieren.
Falls du etwas mehr Funktionalität haben willst, nimm doch QGraphicsView mit QProxyWidgets. Schau dir auch mal die embeddeddialogs-Demo an.
Wie soll man durch Verschieben der QMdiSubWindows das Betriebssystem ermitteln können?
Falls du etwas mehr Funktionalität haben willst, nimm doch QGraphicsView mit QProxyWidgets. Schau dir auch mal die embeddeddialogs-Demo an.
OS == Operating System == Betriebssystem.Hierbei soll z.B. dem Bediener die Möglichkeit auf das OS zu kommen, genommen werden.
Wie soll man durch Verschieben der QMdiSubWindows das Betriebssystem ermitteln können?
In dem man den Desktop dahinter sieht und evtl. dann auf System Funktionen Zugriff bekommt, je nachdem wie dieser konfiguriert ist.Wie soll man durch Verschieben der QMdiSubWindows das Betriebssystem ermitteln können?
Ich verwende bereits 'QGraphicsView' innerhalb jedes SubMDI Fensters um die Objekte (Widgets) entsprechend zu positionieren. Und ja, ich möchte alles in verschiedenen Fenstern steuern. So kann der Anwender eine Statuszeile, einen Eingabebereich und Steuerleisten definieren.
Gruss R.
Das hat aber gar nix mit MdiArea zu tun, sondern mit der Art wie du das MainWindow anzeigst. Mach es Fullscreen und verbiete dem User den Fullscreenmode zu verlassen.Ritchie hat geschrieben:In dem man den Desktop dahinter sieht und evtl. dann auf System Funktionen Zugriff bekommt, je nachdem wie dieser konfiguriert ist.Wie soll man durch Verschieben der QMdiSubWindows das Betriebssystem ermitteln können?
Mehrere Fenster verwealten mit einer Statuszeile ist einfach zu realisieren über die MdiArea als CentralWidget in einem MainWindow.Ich verwende bereits 'QGraphicsView' innerhalb jedes SubMDI Fensters um die Objekte (Widgets) entsprechend zu positionieren. Und ja, ich möchte alles in verschiedenen Fenstern steuern. So kann der Anwender eine Statuszeile, einen Eingabebereich und Steuerleisten definieren.
Kannst du bitte einmal GENAU deinen Aufbau beschreiben? Ich sehe nicht, wieso es notwendig sein sollte das Verschieben eines QMdiSubWindows in einer QMdiArea zu verbieten.
Und Programme, die sich auf meinem Rechner ohne Eingriffsmöglichkeit im Fullscreen starten, werden nach Beenden sofort wieder deinstalliert. Das ist mMn. das Grausamste, was man einem Privatanwender bieten kann...
Wenn die Applikation auf einzelnen Rechnern als einziges Bedieninterface laufen soll (z.B. Software an einem Geldautomaten) ist das natürlich wünschenswert.
Hi,
das ganze ist kein fertiges Programm, sondern eine Art Programmiersprache. Der Ersteller, kann Bilder erstellen, welche mit einer externen Steuerung (SPS von Siemens oder eigenen Microcontrollern für Steuerungsaufgaben).
Das ganze nennt sich SCADA für Industriesteuerungen
http://en.wikipedia.org/wiki/SCADA
Nun ja, wie der Ersteller seine Bilder erstellen will, ist seine Sache, ich stelle nur die technischen Möglichkeiten zur Verfügung. Unter welcher Lizenz das Programm später läuft, weiss ich noch nicht.
Jedenfalls ist die Funktion so üblich unter vergleichbaren Systemen unter Windows, wie Z.B. WinCC, Intouch, iFix, RS View
http://global.wonderware.com/DE/Pages/default.aspx
http://www.automation.siemens.com/mcms/ ... fault.aspx
http://de.wikipedia.org/wiki/Prozessvis ... #Beispiele
Gruss R.
das ganze ist kein fertiges Programm, sondern eine Art Programmiersprache. Der Ersteller, kann Bilder erstellen, welche mit einer externen Steuerung (SPS von Siemens oder eigenen Microcontrollern für Steuerungsaufgaben).
Das ganze nennt sich SCADA für Industriesteuerungen
http://en.wikipedia.org/wiki/SCADA
Nun ja, wie der Ersteller seine Bilder erstellen will, ist seine Sache, ich stelle nur die technischen Möglichkeiten zur Verfügung. Unter welcher Lizenz das Programm später läuft, weiss ich noch nicht.
Jedenfalls ist die Funktion so üblich unter vergleichbaren Systemen unter Windows, wie Z.B. WinCC, Intouch, iFix, RS View
http://global.wonderware.com/DE/Pages/default.aspx
http://www.automation.siemens.com/mcms/ ... fault.aspx
http://de.wikipedia.org/wiki/Prozessvis ... #Beispiele
Gruss R.
Gelöst,
einfach ein Rect über die gesamte GraficScene verwenden, hierdurch bekommt das Fenster keinen direkten Mouse-Click mehr.
Gruss R.
einfach ein Rect über die gesamte GraficScene verwenden, hierdurch bekommt das Fenster keinen direkten Mouse-Click mehr.
Code: Alles auswählen
QGraphicsRectItem *m_BackgroundPointer;
....
m_BackgroundPointer=GraficScene->addRect ( 0, 0, 1, 1);
m_BackgroundPointer->setRect (0, 0,WindowSize.width() ,WindowSize.height());
m_BackgroundPointer->setBrush(BackGroundColor);
m_BackgroundPointer->setPen( BackGroundColor );