GTKを使用して、ワークスペースのサイズ(画面サイズ以下タスクバー)を見つけます
質問
どのように<強力/>タスクバーをカバーする(またはによって覆われている)なしのデスクトップ全体を埋めるのメインウィンドウを作成しないの の最大化されずに?私は、画面全体のサイズを見つけて、これに応じて、メインウィンドウを設定することができます:
window = gtk.Window()
screen = window.get_screen()
window.resize(screen.get_width(), screen.get_height())
が、ウィンドウの下部には、タスクバーで覆われています。
解決
あなたはこのためにあなたのウィンドウマネージャのなすがままに完全であり、ここで重要な問題はあります:
基本的に最大化およびサイズ変更はあなたはそれがunmaximizedときにそれがあった場所を覚えておくことができるかもしれないというためには、二つの別々のものであるため、の最大化されずにの
だから我々は、ハッキングの数が残されています。
私はあなたにこの恐ろしいハックを表示する前に、私は適切な最大化の使用を検討することができ促すだけそれに満足してます。
だからここに行く:
import gtk
# Even I am ashamed by this
# Set up a one-time signal handler to detect size changes
def _on_size_req(win, req):
x, y, w, h = win.get_allocation()
print x, y, w, h # just to prove to you its working
win.disconnect(win.connection_id)
win.unmaximize()
win.window.move_resize(x, y, w, h)
# Create the window, connect the signal, then maximise it
w = gtk.Window()
w.show_all()
w.connection_id = w.connect('size-request', _on_size_req)
# Maximizing will fire the signal handler just once,
# unmaximize, and then resize to the previously set size for maximization.
w.maximize()
# run this monstrosity
gtk.main()
他のヒント
あなたは窓を作る意味があります。のフルスクリーンの
のGtkはフルスクリーンのウィンドウを作成するための機能を持っており、バック、参照 gtk_window_fullscreen()
と gtk_window_unfullscreen()
するます。
所属していません StackOverflow