Fer*_*eru 3 python linux pygtk multiple-monitors
我在OS Linux上使用Python PyGTK库(suse,ubuntu)在具有多个显示监视器的设备上工作.
我试图在连接到设备的特定显示器监视器上放置一个全屏窗口(在python中,gtk.Window).
我正在使用以下代码:
n_monitors = gtk.gdk.Screen.get_n_monitors() # Get number of monitors.
gtk.gdk.Screen.get_monitor_geometry(*monitor_number*) # Get the size of a specific monitor.
Run Code Online (Sandbox Code Playgroud)
第二个api返回监视器大小和偏移信息.
gtk.Window.move(offset_x, offse_y)可用于在特定监视器上移动窗口.
虽然这似乎并不常用.看起来窗口与鼠标位置具有亲和力,或者如果监视器分辨率不同,则不起作用.
是否有gtk.Window的任何属性可以帮助缓解此问题.我试过玩下面没有帮助:
gtk.Window.set_position(gtk.WIN_POS_NONE)
gtk.Window.set_gravity(gtk.gdk.GRAVITY_NORTH_WEST)
Run Code Online (Sandbox Code Playgroud)
有任何想法吗.
您的显示器共同组成一个屏幕.您可以查询屏幕以了解其监视器.然后,您可以通过将窗口(x,y)与显示器的窗口相同来将窗口定位在给定的监视器上.
假设您的窗口是window,您可以像这样获得屏幕
screen = window.get_screen()
Run Code Online (Sandbox Code Playgroud)
然后像这样获取监视器数据
monitors = []
for m in range(screen.get_n_monitors())
monitors.append(screen.get_monitor_geometry(m)
Run Code Online (Sandbox Code Playgroud)
监视器是数字0,1,2,...如果需要,您可以获得当前监视器,如下所示:
screen.get_monitor_at_window(screen.get_active_window())
Run Code Online (Sandbox Code Playgroud)
要在监视器上定位窗口,请将监视器(x,y)添加到窗口(x,y).计算那些x,y值,然后移动窗口:
window.move(x,y)
Run Code Online (Sandbox Code Playgroud)
看到我在这里提供的类似答案.
| 归档时间: |
|
| 查看次数: |
4024 次 |
| 最近记录: |