Files

36 lines
856 B
Python
Raw Permalink Normal View History

"""Entry: `python -m voice_confirmation_client` or `voice-confirmation-client`."""
from __future__ import annotations
import signal
import sys
def main() -> None:
from PySide6.QtCore import QTimer
from PySide6.QtWidgets import QApplication
from voice_confirmation_client.gui.main_window import MainWindow
app = QApplication(sys.argv)
win = MainWindow()
win.show()
app.aboutToQuit.connect(win.shutdown)
# Qt 事件循环长时间跑在 native 代码里时Python 无法处理 SIGINT定时器让解释器周期性醒来。
_pulse = QTimer()
_pulse.timeout.connect(lambda: None)
_pulse.start(200)
def _on_sigint(_signum: int, _frame: object | None) -> None:
app.quit()
signal.signal(signal.SIGINT, _on_sigint)
raise SystemExit(app.exec())
if __name__ == "__main__":
main()