我仍然是python的新手,所以这可能是一个愚蠢的问题。
我正在尝试学习如何使用pygtk制作GUI (主要是因为我使用的是linux,并且我希望在我的程序中支持GTK主题)。我从尽可能简单的窗口开始,我发现由于我使用的是平铺窗口管理器,程序将会平铺。
这不是问题,但我想做的第一个程序需要一个浮动窗口,我可以在客户端修改窗口管理器的配置来修复它,但我想做得对,让它为每个人工作。
After some research我发现这样做的方法是设置一个窗口类型提示,窗口管理器将自动设置为“浮动”。这是我尝试过的,使用this作为资源:
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_type_hint(Gtk.gdk.WINDOW_TYPE_HINT_UTILITY)
win.show_all()
Gtk.main()
但它不起作用。我会被追查的。
Traceback (most recent call last):
File "/mnt/storHDD/Programming/Python/python-learning/guitesting.py", line 7, in <module>
win.set_type_hint(Gtk.gdk.WINDOW_TYPE_HINT_UTILITY)
File "/usr/lib/python3.5/site-packages/gi/overrides/__init__.py", line 39, in __getattr__
return getattr(self._introspection_module, name)
File "/usr/lib/python3.5/site-packages/gi/module.py", line 139, in __getattr__
self.__name__, name))
AttributeError: 'gi.repository.Gtk' object has no attribute 'gdk'
我真的不知道从这里该做什么。我也尝试过导入gdk,但似乎没有改变任何事情。你知道我能做什么来解决这个问题吗?
发布于 2016-08-31 11:38:37
您需要导入Gdk
,然后使用Gdk.WindowTypeHint.UTILITY
,而不是Gtk.gdk.WINDOW_TYPE_HINT_UTILITY
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk, Gdk
win = Gtk.Window()
win.connect("delete-event", Gtk.main_quit)
win.set_type_hint(Gdk.WindowTypeHint.UTILITY)
win.show_all()
Gtk.main()
另请参见here。
https://stackoverflow.com/questions/39247538
复制相似问题