使用GTK查找工作区大小(屏幕大小减去任务栏)

发布于 2021-01-29 16:15:00

您如何创建一个充满整个桌面 而不覆盖任务栏(没有被 任务栏覆盖)没有最大化
的主窗口?我可以找到整个屏幕尺寸,并据此设置主窗口:

window = gtk.Window()
screen = window.get_screen()
window.resize(screen.get_width(), screen.get_height())

但是窗口的底部被任务栏覆盖。

关注者
0
被浏览
50
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    您完全可以依靠窗口管理器来解决这个问题,这里的关键问题是:

    没有被最大化

    因此,我们还有很多技巧,因为基本上最大化和调整大小是两个独立的事物,以便您可以记住未最大化时的位置。

    因此,在我向您展示这个可怕的骇客之前,我敦促您考虑使用适当的最大化并对此感到满意。

    因此,这里去:

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


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看