使用Ctrl + C停止Python Gtk.Application

oke*_*let 5 python gtk3

我正在创建一个应用程序。以前,我Gtk.Main()用来启动我的应用程序,并使用创建了一些钩子以从命令行停止应用程序Ctrl+C。现在,我已经将应用程序迁移到了更“标准”的位置Gtk.Application,但是无法停止使用Ctrl+C

这很简单Gtk.Application,当从命令行运行时,不能使用Ctrl+C以下命令停止它:

from gi.repository import Gtk
import sys

# a Gtk ApplicationWindow


class MyWindow(Gtk.ApplicationWindow):
    # constructor: the title is "Welcome to GNOME" and the window belongs
    # to the application app

    def __init__(self, app):
        Gtk.Window.__init__(self, title="Welcome to GNOME", application=app)


class MyApplication(Gtk.Application):
    # constructor of the Gtk Application

    def __init__(self):
        Gtk.Application.__init__(self)

    # create and activate a MyWindow, with self (the MyApplication) as
    # application the window belongs to.
    # Note that the function in C activate() becomes do_activate() in Python
    def do_activate(self):
        win = MyWindow(self)
        # show the window and all its content
        # this line could go in the constructor of MyWindow as well
        win.show_all()

    # start up the application
    # Note that the function in C startup() becomes do_startup() in Python
    def do_startup(self):
        Gtk.Application.do_startup(self)

# create and run the application, exit with the value returned by
# running the program
app = MyApplication()
exit_status = app.run(sys.argv)
sys.exit(exit_status)
Run Code Online (Sandbox Code Playgroud)

小智 6

import signal
from gi.repository import GLib

...

GLib.unix_signal_add(GLib.PRIORITY_DEFAULT, signal.SIGINT, app.quit)
Run Code Online (Sandbox Code Playgroud)


小智 -3

您可以使用 Ctrl+Z 来停止脚本的执行。

  • 是的,但这不会停止应用程序,只会停止执行。 (3认同)