Coverage for graphica/gui/detached_canvas_window.py: 100.0%
11 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-12 16:38 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-12 16:38 +0000
1"""切り離したキャンバスを入れるだけの独立したウィンドウ。
3self.canvas は親を替えるだけで同じオブジェクトのまま。閉じられても破棄せず closed で知らせ、戻す処理は
4PlotterApp._reattach_canvas() に任せる(「元に戻す」と×ボタンが同じ後処理を通るように)。
5"""
6from PySide6.QtCore import Qt, Signal
7from PySide6.QtWidgets import QMainWindow
10class DetachedCanvasWindow(QMainWindow):
11 closed = Signal()
13 def __init__(self, title, parent=None):
14 super().__init__(parent)
15 self.setWindowTitle(title)
16 # parent があっても、埋め込みではなく独立したウィンドウにする
17 self.setWindowFlag(Qt.WindowType.Window, True)
19 def closeEvent(self, event):
20 """破棄せずに closed を出すだけ(キャンバスを抱えたまま破棄すると、戻す前にキャンバスごと消える)。"""
21 event.accept()
22 self.closed.emit()