PySimpleGUI Window 也消失了 Quickly/Some 需要其他选项
PySimpleGUI Window Disappearing too Quickly/Some Other Options Needed
我创建了一个 PySimpleGUI Window,其中包含一些文本、透明背景且没有标题栏,但它不符合 auto_close_duration 属性。我知道这是因为我没有正确实施它,只是在研究如何解决这个问题。
此外,我希望 window 在关闭之前保持活动状态一段时间,但也希望听到任何键盘按钮按下以提前自动关闭它。如果任何键盘按钮不起作用,可以使用 Escape 按钮,但在任何键盘上按下都是理想的选择。
这就是我现在拥有的,它会在消失前闪烁文字。 Python 3.8+ Windows 10.
import PySimpleGUI as sg
def popup(message):
# Set font options
sg.set_options(font=("Courier New", 24))
# Define the transparent bg colour
bg = '#add123'
# Define a layout with our message to display
layout = [[sg.Text(message, background_color=bg, pad=(0, 0))]]
# Get the width and height of the current monitor (to use later)
w, h = sg.Window.get_screen_size()
# Define a window object to show our layout
win = sg.Window('title', layout,
no_titlebar=True,
keep_on_top=True,
location=(None, None),
auto_close=True,
auto_close_duration=20,
transparent_color=bg,
margins=(0, 0),
# finalize=True,
)
# Read the window?
event, values = win.read(timeout=0)
# Attempts to keep window alive for the auto_close_duration
win.force_focus()
# 1. How to keep window/popup message visible for auto_close_duration?
# 2. How to close window if ANY keyboard button pressed, or the Escape key at the least?
# win.close()
return
popup('Here is the message.')
设置两个条件来产生键盘事件退出。
-
Window
和 中的选项 return_keyboard_events=True
Window
方法 read
中的选项 timeout
import PySimpleGUI as sg
def popup(message):
sg.set_options(font=("Courier New", 24))
bg = '#add123'
layout = [[sg.Text(message, background_color=bg, pad=(0, 0))]]
win = sg.Window('title', layout, no_titlebar=True, keep_on_top=True,
location=(1000, 200), transparent_color=bg, margins=(0, 0),
return_keyboard_events=True)
win.read(timeout=3000, close=True)
return
popup('Here is the message.')
我创建了一个 PySimpleGUI Window,其中包含一些文本、透明背景且没有标题栏,但它不符合 auto_close_duration 属性。我知道这是因为我没有正确实施它,只是在研究如何解决这个问题。
此外,我希望 window 在关闭之前保持活动状态一段时间,但也希望听到任何键盘按钮按下以提前自动关闭它。如果任何键盘按钮不起作用,可以使用 Escape 按钮,但在任何键盘上按下都是理想的选择。
这就是我现在拥有的,它会在消失前闪烁文字。 Python 3.8+ Windows 10.
import PySimpleGUI as sg
def popup(message):
# Set font options
sg.set_options(font=("Courier New", 24))
# Define the transparent bg colour
bg = '#add123'
# Define a layout with our message to display
layout = [[sg.Text(message, background_color=bg, pad=(0, 0))]]
# Get the width and height of the current monitor (to use later)
w, h = sg.Window.get_screen_size()
# Define a window object to show our layout
win = sg.Window('title', layout,
no_titlebar=True,
keep_on_top=True,
location=(None, None),
auto_close=True,
auto_close_duration=20,
transparent_color=bg,
margins=(0, 0),
# finalize=True,
)
# Read the window?
event, values = win.read(timeout=0)
# Attempts to keep window alive for the auto_close_duration
win.force_focus()
# 1. How to keep window/popup message visible for auto_close_duration?
# 2. How to close window if ANY keyboard button pressed, or the Escape key at the least?
# win.close()
return
popup('Here is the message.')
设置两个条件来产生键盘事件退出。
-
Window
和 中的选项 Window
方法
return_keyboard_events=True
read
中的选项 timeout
import PySimpleGUI as sg
def popup(message):
sg.set_options(font=("Courier New", 24))
bg = '#add123'
layout = [[sg.Text(message, background_color=bg, pad=(0, 0))]]
win = sg.Window('title', layout, no_titlebar=True, keep_on_top=True,
location=(1000, 200), transparent_color=bg, margins=(0, 0),
return_keyboard_events=True)
win.read(timeout=3000, close=True)
return
popup('Here is the message.')