gtk dialog

gtk-filechooser-dialog-example.py     gtk-filechooser-button-example.py  

shen@ShenUbuntu13.04 (~/pygtknotebook/examples/more-pygtk)


为什么  GtkFileChooserDialog  can not be inspect but in GtkFileChooserButton , it Can


因为GtkFileChooserButton的GtkFileChooserDialog 被设置为 gtk_window_set_modal()  gtk_window_set_transient_for 每次用gtkparasite inspect它们的时候需要 set_modal(False)


import gtk.gdk
root = gtk.gdk.get_default_root_window()
for id in root.property_get('_NET_CLIENT_LIST')[2]:
    w = gtk.gdk.window_foreign_new(id)
    if w:
        print(w.property_get('WM_NAME')[2])
        if w.property_get('WM_NAME')[2] == 'tile of what window you want':
            w.set_modal(False)   # 为了让Gtkparasite 获取 能 inspect它

Description

Dialog boxes are a convenient way to prompt the user for a small amount of input, e.g. to display a message, ask a question, or anything else that does not require extensive effort on the user's part. Dialogs are organized as a window split vertically. The top section is a gtk.VBox, and is where widgets such as a gtk.Label or a gtk.Entry should be packed. The bottom area is known as the action_area which is generally used for packing buttons into the dialog which may perform functions such as cancel, ok, or apply. The two areas are separated by a gtk.HSeparator.

The gtk.Dialog boxes are created with a call to gtk.Dialog() that sets the dialog title, some convenient flags, and adds simple buttons. In a newly created dialog, the two primary areas of the window can be accessed as the vbox and action_area attributes, as can be seen from the example, below.

import gtk

label = gtk.Label("Nice label")
dialog = gtk.Dialog("My dialog",
                   None,
                   gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT,
                   (gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
                    gtk.STOCK_OK, gtk.RESPONSE_ACCEPT))
dialog.vbox.pack_start(label)
label.show()
checkbox = gtk.CheckButton("Useless checkbox")
dialog.action_area.pack_end(checkbox)
checkbox.show()
response = dialog.run()
dialog.destroy()

A modal dialog (that is, one which freezes the rest of the application from user input), can be created by passing the gtk.DIALOG_MODAL flag to the gtk.Dialog() constructor or by calling set_modal() on the dialog.

If you add buttons to gtk.Dialog using gtk.Dialog()add_button(), or add_action_widget(), clicking the button will emit a signal called "response" with a response ID that you specified. PyGTK will never assign a meaning to positive response IDs; these are entirely user-defined. But for convenience, you can use the pre-defined GTK Response Type Constants (these all have values less than zero).

If a dialog receives a delete event, the "response" signal will be emitted with a response ID of gtk.RESPONSE_DELETE_EVENT.

If you want to block waiting for a dialog to return before returning control flow to your code, you can call run(). This function enters a recursive main loop and waits for the user to respond to the dialog, returning the response ID corresponding to the button the user clicked.


gtk.Window.set_transient_for

    def set_transient_for(parent)

parent :

the parent window or None to remove the transient parent

The set_transient_for() method sets the window as a transient window for the window specified by parent. Dialog windows should be set transient for the main application window they were spawned from. This allows window managers to keep the dialog on top of the main window, or center the dialog over the main window. The gtk.Dialog() constructor and other convenience functions in PyGTK will sometimes call the set_transient_for() method on your behalf.

On Windows, this method will and put the child window on top of the parent, much as the window manager would have done on X.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值