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

4 投票
1 回答
3347 浏览
提问于 2025-04-16 13:59

在Windows上使用PyGTK时,我想创建一个没有标题栏图标的模态对话框,这符合微软的对话框用户界面指南。这些指南规定,大多数对话框不应该有标题栏图标(除了那些实现主窗口或工具的对话框,它们会出现在任务栏上)。

没有标题栏图标和空白图标是有区别的,因为没有图标的对话框标题是完全靠左对齐的,并且没有地方可以左键点击打开Windows的上下文菜单(你必须右键点击标题栏)。

我以为下面的代码可以实现这个功能:

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系统中的错误信息对话框都没有图标。

我还在GNU/Linux上测试了上述代码,结果也是一样……模态对话框没有任务栏提示,但标题栏上仍然有图标。

如果现在能找到一个解决办法,我会很高兴,但如果没有干净的方式来实现这个,我打算为GTK/PyGTK提交一个bug报告。

1 个回答

4

试试这个

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()

撰写回答