题
如何创建填充整个桌面的主窗口不覆盖(或通过被覆盖),任务栏和没有被最大化?我能找到与整个屏幕尺寸,并与此相应地设置在主窗口:
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