How to disable the close button in GTK?

被刻印的时光 ゝ 提交于 2019-12-10 11:46:12

问题


I have created a One Time Password mechanism in OpenERP 6.0.3's GTK client. After login the GTK client shows a window to enter the One Time Password as below.

Now I want to disable the close button at the top left of the window. How can I do that? I am using python and the code to create the window is:

EDIT

class sms_auth(gtk.Dialog):

    def run_thread(self):
        code=self.textbox_code.get_text()
        self.result = rpc.session.rpc_exec_auth('/object', 'execute', 'res.users', 'check_code', code)
        return self.result

    def run(self):
        self.show_all()
        res = super(sms_auth, self).run()
        result = None
        if res == gtk.RESPONSE_ACCEPT:
            result = self.run_thread()

        self.destroy()
        return result

    def hide(*args):
        window.hide()
        return gtk.TRUE

    def __init__(self, parent, response):
        # To use cancel butto add gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
        gtk.Dialog.__init__(
            self, 'Sms Authentication', parent,
            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
            (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
        )
        label = gtk.Label("Please enter sms code :")
        self.parent_widget = parent
        self.response = False
        self.db_login_response = response
        self.connect('delete_event', hide)

        self.textbox_code = gtk.Entry()
        label.set_alignment(0,0)

        table = gtk.Table(1, 7)
        table.set_homogeneous(False)
        table.set_col_spacings(40)
        table.attach(label, 0, 6, 0, 1, ypadding=4)
        table.attach(self.textbox_code, 5, 6, 0, 1, ypadding=4)

        self.vbox.pack_start(table,False, False, 0)

回答1:


Try like this

def hide(self, *args):
    window.hide()
    return gtk.TRUE


self.window.connect('delete_event', self.hide)

Note: Refer here

import pygtk
pygtk.require('2.0')
import gtk


class DialogExample(gtk.Dialog):

    def __init__(self, parent=None):
        gtk.Dialog.__init__(self, "My Dialog", parent,
            gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
            (gtk.STOCK_OK, gtk.RESPONSE_ACCEPT)
        )
        self.set_default_size(150, 100)
        label = gtk.Label("This is a dialog to display additional information")
        box = self.get_content_area()
        box.add(label)
        self.show_all()
        self.connect('delete-event', self.delete_event)

    def delete_event(self, widget, event=None):
        print "Here"
        return True


def main():
    # rest in gtk_main and wait for the fun to begin!
    gtk.main()
    return 0


if __name__ == "__main__":
    DialogExample()
    main()


来源:https://stackoverflow.com/questions/21178694/how-to-disable-the-close-button-in-gtk

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!