2017-04-27 13 views
0

Ich habe ein Hauptfenster, wo ich etwas darauf zeichnen werde und es wird sofort die Zeichnung in einem anderen Fenster anzeigen. Das Problem, mit dem ich gerade konfrontiert bin, ist der beste Weg, beide Fenster dazu zu bringen, das zu tun.Kommunikation zwischen zwei Fenstern Qt5

Antwort

0

Wenn Sie das Fenster im gleichen Programm gestartet haben, können Sie einen Zeiger auf das andere Fenster übergeben und sparen:

In MyWindowOne:

include "mywindow2.h" 

class MyWindowOne { 

MyWindowTwo * p_window_two; 

} 

Das gleiche gilt für das andere Fenster. Sie können diese Zeiger jetzt verwenden, um die Fenster der anderen Fensterklasse zu bearbeiten.

In MyWindow2.h:

class MyWindowTwo { 

friend class MyWindowOne; 

... 

} 
+0

Vielen Dank für Ihre Antwort. Ich habe Ihren Vorschlag oben versucht. Allerdings kann ich mein PaintEvent() im zweiten Fenster immer noch nicht auslösen. Irgendwelche Vorschläge ? –

+0

Wie nennst du es? Wenn Sie automatisch generierte Header (aus .ui-Dateien) haben, müssen Sie diese ebenfalls einschließen. – Thomas

+0

z.B. #include "mywindow2.h" #include "ui_mywindow2.h" – Thomas

0

hängt wirklich davon ab, was werden Sie tun und wie Sie tun.

Der einfachste Weg ist, zwei QGraphivsView zu verwenden und die gleiche QGraphivsScene() zwischen ihnen zu teilen. Ein zweiter Ansatz besteht darin, ein update() auf dem zweiten Fenster auszulösen und auf dem paintEvent eine QPixmap darauf zu zeichnen, wobei diese Pixmap die Pixmap des ersten Widgets sein sollte.

Beide werden funktionieren.

Verwandte Themen