【发布时间】:2016-08-31 21:52:27
【问题描述】:
我对 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,但它似乎并没有改变任何东西。知道我可以做些什么来解决这个问题吗?
【问题讨论】:
-
pygtk 不是 Gtk3。每当您看到 pygtk 代码时,它可能已经过时并且无法与 Gtk3 一起使用。
gtk.gdk就是一个例子。 -
对不起,我没有。不过感谢您的回答。因为根据 Rawing,这是因为 pygtk 已经过时了,有没有更好的方法来做事?
-
这对我来说似乎很完美!
标签: python user-interface gtk