GTK + 3:在退出应用程序之前询问确认

Joaquinlpereyra

我试图在用户尝试退出我的应用程序时要求其确认。但是我不知道如何捕捉用户退出应用程序的所有不同方式:窗口上有“ X”按钮Alt + F4,我本人在i3上使用Alt + Shift + Q。

一个人怎么会这样呢?

bas

您应该连接到delete-eventGtk.Window您使用的应用程序窗口。使用delete-event,您可以显示一个确认对话框,并且可以根据用户的响应来返回True-表示您已处理该事件,并且应停止信号传播。Falsereturn-表示信号传播应继续,这将导致destroy()在窗口小部件上调用方法。

delete-event信号被发射在从窗口管理器的终止请求的响应; 例如,使用窗口菜单时;像Alt + F4这样的组合键;或窗口的“关闭”按钮。

一个简单的例子证明了上述内容:

import gi
gi.require_version('Gtk', '3.0')

from gi.repository import Gio
from gi.repository import Gtk

class AppWindow (Gtk.ApplicationWindow):
    def __init__(self):
        Gtk.ApplicationWindow.__init__(self)
        self.set_default_size(200, 200)

    # Override the default handler for the delete-event signal
    def do_delete_event(self, event):
        # Show our message dialog
        d = Gtk.MessageDialog(transient_for=self,
                              modal=True,
                              buttons=Gtk.ButtonsType.OK_CANCEL)
        d.props.text = 'Are you sure you want to quit?'
        response = d.run()
        d.destroy()

        # We only terminate when the user presses the OK button
        if response == Gtk.ResponseType.OK:
            print('Terminating...')
            return False

        # Otherwise we keep the application open
        return True

def on_activate(app):
    # Show the application window
    win = AppWindow()
    win.props.application = app
    win.show()

if __name__ == '__main__':
    # Create an application instance
    app = Gtk.Application(application_id='com.example.ExampleApp', flags=0)

    # Use ::activate to show our application window
    app.connect('activate', on_activate)
    app.run()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

退出后如何设置GTK应用程序的状态代码?

来自分类Dev

gtk :: Window在将gtkmm2移植到gtkmm3应用程序时显示并退出

来自分类Dev

如何针对gtk 3库运行javaFx应用程序?

来自分类Dev

Ruby GTK3如何更改应用程序主题?

来自分类Dev

在KDE下更改GTK3应用程序的字体

来自分类Dev

自动启动GTK应用程序失败

来自分类Dev

防止GTK应用程序的多个实例

来自分类Dev

GTK应用程序显示“绿色”太暗

来自分类Dev

如何分发python GTK应用程序?

来自分类Dev

无法编译GTK +应用程序

来自分类Dev

GTK +应用程序未全屏运行

来自分类Dev

非GTK应用程序中的GTK + 3文件选择器

来自分类Dev

可以将Gtk +应用程序编译为在Gtk 2和3上运行

来自分类Dev

GTK2,GTK3或QT用于LXDE优化的应用程序

来自分类Dev

什么主题对GTK2和GTK3应用程序都适用?

来自分类Dev

Kubuntu上GTK + 2和GTK + 3应用程序的单独图标集

来自分类Dev

使用 Python GTK3 Gtk.Application 打开多个应用程序窗口的正确方法

来自分类Dev

代码无法从GTK应用程序退出-显然没有消息循环

来自分类Dev

我的python gtk3应用程序的桌面文件未加载该应用程序

来自分类Dev

GTK在KDE中的应用

来自分类Dev

GTK在KDE中的应用

来自分类Dev

为python GTK3应用程序创建安装程序

来自分类Dev

Gtk C应用程序-设置PWD使图片正常工作

来自分类Dev

在Python MDI应用程序中结束GTK +主循环

来自分类Dev

在Windows 7上编译和运行GTK +应用程序

来自分类Dev

如何在屏幕中央打开GTK应用程序?

来自分类Dev

Qt应用程序停止继承GTK主题

来自分类Dev

如何翻译pygtk;空地 gtk.Builder()应用程序?

来自分类Dev

如何获得Java应用程序以使用GTK +主题?

Related 相关文章

热门标签

归档