两个全屏 tkinter windows 在 Raspberry Pi 4 的独立显示器上

Two fullscreen tkinter windows on separate monitors on Raspbery Pi 4

我有一个简单的 TK 应用程序,运行在一台显示器上全屏显示就好了,但现在我想 运行 两个全屏显示 windows,每个显示器一个 Raspberry Pi 4. 这两个显示器有不同的分辨率,它们自己可以正常工作,但我无法让两个全屏 windows 工作,两个 windows 全屏都只在第一个显示器上显示。

我正在尝试用 tkinter.Tk().geometry() 来做,这是可行的方法还是有更直接的方法?

import tkinter

root = tkinter.Tk()

# specify resolutions of both windows
w0, h0 = 3840, 2160
w1, h1 = 1920, 1080

# set up window for display on HDMI 0 
win0 = tkinter.Toplevel()
win0.geometry(f"{w0}x{h0}")
win0.attributes("-fullscreen", True)
win0.config(cursor="none") # remove cursor 
win0.wm_attributes("-topmost", 1) # make sure this window is on top 

# set up window for display on HDMI 1 
win1 = tkinter.Toplevel()
win1.geometry(f"{w1}x{h1}")
win1.attributes("-fullscreen", True)
win1.config(cursor="none")
win1.wm_attributes("-topmost", 1)

你必须将第二个 window 向右偏移第一个显示器的宽度(X 系统首先将 HDMI0 端口上的显示器向下,然后将显示器从 HDMI1 向右)。geometry 让您确保它们不重叠,然后 fullscreen 按预期工作。

geometry 字符串的格式为:<width>x<height>+xoffset+yoffset.

root = tkinter.Tk()

# specify resolutions of both windows
w0, h0 = 3840, 2160
w1, h1 = 1920, 1080

# set up window for display on HDMI 0 
win0 = tkinter.Toplevel()
win0.geometry(f"{w0}x{h0}+0+0")
win0.attributes("-fullscreen", True)

# set up window for display on HDMI 1 
win1 = tkinter.Toplevel()
win1.geometry(f"{w1}x{h1}+{w0}+0") # <- the key is shifting right by w0 here 
win1.attributes("-fullscreen", True)

root.withdraw()  # hide the empty root window