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

标签 python gtk pygtk

如何创建一个填满整个桌面的主窗口不覆盖(或被任务栏覆盖)并且不最大化?我可以找到整个屏幕大小并相应地设置主窗口:

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

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

最佳答案

为此,您完全受制于窗口管理器,这里的关键问题是:

without being maximized

所以我们留下了一些 hack,因为基本上最大化和调整大小是两个独立的事情,以便您能够记住它在未最大化时的位置。

所以在我向您展示这个可怕的 hack 之前,我敦促您考虑使用适当的最大化并乐于接受它。

所以这里是:

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

关于python - 使用 GTK 查找工作区大小(屏幕大小减去任务栏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/502282/

相关文章:

python - PyGtk - 激活组合框

windows - 在 Windows 10 上为 python 3.6.1 安装 pygtk

python - 如果字符串明显采用首字母大写,为什么 istitle() 字符串方法返回 false?

python - 有没有办法检测到 Python 正在运行测试?

python - 符号 "#!"在 Python 中是什么意思?

c - gtk-vim-语法与 Janus

Python/Glade/PyGTK - 检查复选框是否处于事件状态

Python自定义函数

c - 如何修复传递给 pango_layout_set_text() 的无效 UTF-8 字符串

python - 配置错误 --- gobject ---- 找不到 python header