2016-08-31 14 views
1

私はまだPythonにはまったく新しいので、これはおそらくダムの質問になるでしょう。Pythonを使用してGTKでウィンドウタイプのヒントを設定しようとするとエラーが発生する

私は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をインポートしようとしましたが、何も変更されていないようです。これを解決するために私が何をすることができますか?あなたがGtk.gdk.WINDOW_TYPE_HINT_UTILITY、その後、Gdk.WindowTypeHint.UTILITYを使用し、Gdkをインポートする必要はありません

+0

pygtkは__not__ Gtk3です。あなたがpygtkコードを見るたびに、それは時代遅れであり、Gtk3では動作しません。 'gtk.gdk'はその一例です。 –

+0

申し訳ありませんが、私はしませんでした。しかし、答えをありがとう。 Rawingによれば、これはpygtkが古くなっているので、何か良い方法がありますか? – Kurolox

+0

これは私にとって完璧なようです! –

答えて

1

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

enter image description here

hereを参照してください。

関連する問題