首页 > 解决方案 > 使用 tkinter 和 python 3.7.2 在辅助屏幕中创建全屏应用程序

问题描述

我正在尝试使用 Tkinter 和 Python 3.7.2 创建一个简单的幻灯片。我希望幻灯片在辅助屏幕和全屏模式下显示图像。我尝试只使用这里建议的一个窗口和两个窗口。这是我写的代码:

import tkinter as tk
from PIL import Image, ImageTk

class App(tk.Tk):
    '''Tk window/label adjusts to size of image'''
    def __init__(self, image_files, x, y, delay):
        # the root will be self
        tk.Tk.__init__(self)

        # set width. height, x, y position
        self.geometry('%dx%d+%d+%d'%(912,1140,0,0)) #Window on main screen

        #create second screen window
        self.top2 = tk.Toplevel(self,bg="grey85")
        self.top2.geometry('%dx%d+%d+%d'%(912,1140,-912,0)) # The resolution of the second screen is 912x1140. 
        #The screen is on the left of the main screen
        self.top2.attributes('-fullscreen', False) #Fullscreen mode

        self.pictures = image_files
        self.picture_display = tk.Label(self.top2, width=912, height=1140)
        self.picture_display.pack()
        self.delay = delay
        self.index = 1
        self.nImages = len(image_files)

    def start_acquisition(self):

        if self.index == self.nImages+1:
            self.destroy()
            return

        self.load = Image.open(self.pictures[self.index-1])
        self.render = ImageTk.PhotoImage(self.load)
        self.picture_display['image'] = self.render
        self.index += 1
        self.after(self.delay, self.start_acquisition)


    def run(self):
        self.mainloop()



# set milliseconds time between slides
delay = 3500

image_files = [
'1805Circle Test Output.bmp', #images resolution is 912x1140
'8233Circle Test Input.bmp',
'cross.bmp'
]
x = 0 #Not used currently
y = 0 #Not used currently
app = App(image_files, x, y, delay)
app.start_acquisition()
app.run()

print('Finished')

当全屏属性为“False”时,代码按预期工作。只要我将此属性设置为“True”,“top2”窗口就会出现在主屏幕上。如果只使用一个窗口,也会发生同样的事情。你能帮我找到解决这个问题的方法吗?谢谢

标签: pythontkinterfullscreen

解决方案


推荐阅读