From 0afaec558f80d4e99d427f24afb983cc82545bdd Mon Sep 17 00:00:00 2001 From: newbieQQ Date: Tue, 7 Jul 2026 11:08:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=8B=96=E5=85=A5=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E6=96=87=E4=BB=B6=EF=BC=8C=E7=A7=BB=E9=99=A4=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E8=A1=8C=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/main.py b/main.py index 26ff12c..801de67 100644 --- a/main.py +++ b/main.py @@ -55,6 +55,7 @@ class FrameView(QLabel): self.setAlignment(Qt.AlignmentFlag.AlignCenter) self.setStyleSheet("background: #1a1a1a; border: 1px solid #333;") self.setMouseTracking(True) + self.setAcceptDrops(True) self._frame: Optional[np.ndarray] = None self._pixmap: Optional[QPixmap] = None @@ -71,7 +72,8 @@ class FrameView(QLabel): self._block_clicks: bool = False self.on_point_selected = None - self.on_key_pressed = None # 键盘回调 + self.on_key_pressed = None + self.on_file_dropped = None @property def reference_ready(self) -> bool: @@ -136,6 +138,15 @@ class FrameView(QLabel): self.on_key_pressed(event.key()) super().keyPressEvent(event) + def dragEnterEvent(self, event) -> None: + if event.mimeData().hasUrls(): + event.acceptProposedAction() + + def dropEvent(self, event) -> None: + urls = event.mimeData().urls() + if urls and self.on_file_dropped: + self.on_file_dropped(urls[0].toLocalFile()) + def paintEvent(self, event) -> None: super().paintEvent(event) painter = QPainter(self) @@ -242,6 +253,7 @@ class MainWindow(QMainWindow): self.frame_view = FrameView() self.frame_view.on_point_selected = self._on_point_changed self.frame_view.on_key_pressed = self._on_key_pressed + self.frame_view.on_file_dropped = self.load_video # 右侧面板(弹性宽度) panel = QWidget() @@ -764,8 +776,6 @@ def main(): """) window = MainWindow() - if len(sys.argv) > 1: - window.load_video(sys.argv[1]) window.show() sys.exit(app.exec())