5
我打算更换显示器,在其中显示全屏窗口。 当投影机连接起来时,这特别有趣。选择某个显示器用于全屏显示gtk
我试过使用fullscreen_on_monitor
但是不会产生任何可见的变化。
这是一个非工作例如:
#!/usr/bin/env python
import sys
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gtk
from gi.repository import Gdk
w = Gtk.Window()
screen = Gdk.Screen.get_default()
print ("Montors: %d" % screen.get_n_monitors())
if len(sys.argv) > 1:
n = int(sys.argv[1])
else:
n = 0
l = Gtk.Button(label="Hello, %d monitors!" % screen.get_n_monitors())
w.add(l)
w.show_all()
w.fullscreen_on_monitor(screen, n)
l.connect("clicked", Gtk.main_quit)
w.connect("destroy", Gtk.main_quit)
Gtk.main()
我能看到同样的监视器(出3)在窗口,无论这个值的我提供。
我的问题是:如何让全屏窗口出现在不同的显示器上?
你可以备份“Gtk只是忽略监视器号码”与代码? gtk_window_fullscreen_on_monitor'定义在这里:https://git.gnome.org/browse/gtk+/tree/gtk/gtkwindow.c#n10502最终调用这里定义的'gdk_window_fullscreen_on_monitor':https://git.gnome.org/browse/ gtk +/tree/gdk/gdkwindow.c?id = ea1295c9ab40ab8c1b5b80ccf1575710c5ff6b86#n10820然后我不知道如何进一步关注。 –
如果你看看源代码,一切确实显得很好。所以问题的根源很可能在GTK Python Bindings或Window Manager中。要备份此声明,您自己的代码已经显示出来,设置不同的监视器编号不会导致不同的行为。但底部的代码确实有效:) – B8vrede
我确认它可以工作。谢谢! FTR:我在Ubuntu 16.04上运行GNOME 3.18。 –