如何在PyGTK中创建一个没有标题栏图标的模态对话框?

时间:2011-03-18 20:25:58

标签: python gtk pygtk

在Windows上使用PyGTK,我想根据Microsoft的user interface guidelines for dialogs创建一个没有标题栏图标的模式对话框。指南指定大多数对话框不应具有标题栏图标(实现主窗口或实用程序的对话框除外,并显示在任务栏上)。

缺少标题栏图标与空白图标不同,因为对话框标题完全向左对齐,没有地方左键单击Window的上下文菜单(您必须右键单击标题栏)

我认为以下代码可行:

import gtk

win = gtk.Window()
win.set_icon(None)
win.connect("delete-event",gtk.main_quit)

dia = gtk.Dialog(parent=win, flags=gtk.DIALOG_MODAL)
dia.set_skip_taskbar_hint(True)
dia.set_icon(None)
win.show()
dia.show()

gtk.main()

此代码显示的对话框是模态的,不会显示在任务栏上。但是,它的标题栏上仍然有一个图标,我不想要它。我知道Windows能够显示没有图标的对话框,因为Windows shell中的大多数错误消息都没有。

我还在GNU / Linux上测试了上面的代码,它的行为方式相同...没有任务栏提示的模态对话框,但它仍然有一个标题栏图标。

我现在很乐意将黑客作为答案,但如果没有干净的方法,我打算为GTK / PyGTK提交一个错误。

1 个答案:

答案 0 :(得分:3)

试试这个

window = gtk.Window()
dialog = gtk.Dialog()

dialog.set_modal(True)
dialog.set_transient_for(window)
dialog.set_decorated(False)

window.show()
dialog.show()

gtk.main()