支持拖入视频文件,移除命令行参数
This commit is contained in:
parent
9081d3e585
commit
0afaec558f
16
main.py
16
main.py
|
|
@ -55,6 +55,7 @@ class FrameView(QLabel):
|
||||||
self.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
self.setAlignment(Qt.AlignmentFlag.AlignCenter)
|
||||||
self.setStyleSheet("background: #1a1a1a; border: 1px solid #333;")
|
self.setStyleSheet("background: #1a1a1a; border: 1px solid #333;")
|
||||||
self.setMouseTracking(True)
|
self.setMouseTracking(True)
|
||||||
|
self.setAcceptDrops(True)
|
||||||
|
|
||||||
self._frame: Optional[np.ndarray] = None
|
self._frame: Optional[np.ndarray] = None
|
||||||
self._pixmap: Optional[QPixmap] = None
|
self._pixmap: Optional[QPixmap] = None
|
||||||
|
|
@ -71,7 +72,8 @@ class FrameView(QLabel):
|
||||||
self._block_clicks: bool = False
|
self._block_clicks: bool = False
|
||||||
|
|
||||||
self.on_point_selected = None
|
self.on_point_selected = None
|
||||||
self.on_key_pressed = None # 键盘回调
|
self.on_key_pressed = None
|
||||||
|
self.on_file_dropped = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def reference_ready(self) -> bool:
|
def reference_ready(self) -> bool:
|
||||||
|
|
@ -136,6 +138,15 @@ class FrameView(QLabel):
|
||||||
self.on_key_pressed(event.key())
|
self.on_key_pressed(event.key())
|
||||||
super().keyPressEvent(event)
|
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:
|
def paintEvent(self, event) -> None:
|
||||||
super().paintEvent(event)
|
super().paintEvent(event)
|
||||||
painter = QPainter(self)
|
painter = QPainter(self)
|
||||||
|
|
@ -242,6 +253,7 @@ class MainWindow(QMainWindow):
|
||||||
self.frame_view = FrameView()
|
self.frame_view = FrameView()
|
||||||
self.frame_view.on_point_selected = self._on_point_changed
|
self.frame_view.on_point_selected = self._on_point_changed
|
||||||
self.frame_view.on_key_pressed = self._on_key_pressed
|
self.frame_view.on_key_pressed = self._on_key_pressed
|
||||||
|
self.frame_view.on_file_dropped = self.load_video
|
||||||
|
|
||||||
# 右侧面板(弹性宽度)
|
# 右侧面板(弹性宽度)
|
||||||
panel = QWidget()
|
panel = QWidget()
|
||||||
|
|
@ -764,8 +776,6 @@ def main():
|
||||||
""")
|
""")
|
||||||
|
|
||||||
window = MainWindow()
|
window = MainWindow()
|
||||||
if len(sys.argv) > 1:
|
|
||||||
window.load_video(sys.argv[1])
|
|
||||||
window.show()
|
window.show()
|
||||||
sys.exit(app.exec())
|
sys.exit(app.exec())
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue