gpt4 book ai didi

wxpython - 保持窗口始终在底部

转载 作者:行者123 更新时间:2023-12-02 05:17:50 25 4
gpt4 key购买 nike

我今天开始研究 wxPython,我想知道是否有 wx.STAY_ON_TOP 的替代方案。我正在寻找的是一个始终位于底部的窗口。不幸的是,没有wx.STAY_ON_BOTTOM 窗口样式。

基本上我希望其他窗口(我不拥有)始终在我的窗口之上,即使它有焦点。 (想想桌面上的小部件)。

我尝试在该窗口焦点上使用 Lower() 无济于事。

有什么建议吗?

最佳答案

根据 this article ,我希望您绑定(bind)到的 wx.EVT_SET_FOCUSwx.EVT_KILL_FOCUS 事件不会在包含本身接受焦点的小部件的面板或框架上触发。

This answer建议在框架上使用 wx.EVT_ACTIVATE 事件来捕获窗口何时进入前台或发送到后台。使用 event 对象,您可以确定该窗口当前是否为前景窗口。

下面创建一个空框架,它会留在所有其他窗口后面:

import wx


class MyFrame(wx.Frame):
def __init__(self, *args, **kwargs):
super(MyFrame, self).__init__(*args, **kwargs)
self.Bind(wx.EVT_ACTIVATE, self.on_focus)

def on_focus(self, evt):
self.Lower()


if __name__ == '__main__':
app = wx.App(False)
main_window = MyFrame(None)
main_window.Show()
app.MainLoop()

但是,当窗口的标题栏被点击或者窗口以这种方式获得焦点后点击窗口内的任何内容时,wx.EVT_ACTIVATE 事件似乎没有被触发。因此,如果您单击标题栏(而不是单击并拖动),您可以使窗口位于顶部并保持该状态直到窗口失去焦点。这与您的要求不完全匹配,但我认为它更像是一个功能而不是错误。

关于wxpython - 保持窗口始终在底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21969891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com