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。 –