首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在python / Gtk 3.0中查看当前屏幕尺寸而不显示弃用警告?

如何在python / Gtk 3.0中查看当前屏幕尺寸而不显示弃用警告?
EN

Stack Overflow用户
提问于 2020-09-24 09:26:20
回答 1查看 143关注 0票数 0

我需要知道屏幕的尺寸(确切地说:高度)低于当前Gtk.Window.The最常用的推荐方法:

代码语言:javascript
运行
复制
window = Gtk.Window()
screen = window.get_screen()
h = screen.height()

做了这项工作,但给了我DeprecationWarning: Gdk.Screen.height is deprecated,并且迟早会停止工作。我不想添加任何新的依赖项,所以this cool cheat sheet无能为力。

我的代码应该可以在带有多头设置的Linux上运行,并且这个高度必须是当前屏幕的高度。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-27 18:51:55

更详细的背景:我正在开发的程序是一个墙纸管理器。我希望(浮动)窗口垂直使用所有可能的空间,并在两侧留出一些空间,以观察背景的变化。

由于没有合理的解决方案,我决定遵循this answer

代码语言:javascript
运行
复制
def check_height_and_start(window):
    w, h = window.get_size()
    window.destroy()

    if common.sway or common.env['wm'] == "i3":
        h = h * 0.95

    app = GUI(h)



def main():
    (...)
    w = Gtk.Window() # actually I derived from Gtk.Window to make the window transparent

    if common.sway or common.env['wm'] == "i3":
        w.fullscreen()  # .maximize() doesn't work as expected on sway
    else:
        w.maximize()

    w.present()
    GLib.timeout_add(delay_ms, check_height_and_start, w)
    Gtk.main()

这样,窗高度不包括嵌板(如果有的话)。不幸的是,它在平铺窗口管理器上不起作用,所以我不得不使用fullscreen()而不是maximize(),并任意减少高度。

delay_ms最佳值随硬件速度和使用中的WM而变化,这是另一个不便之处。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64038301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档