Wx Python: Как вывести окно на «Оставаться сверху» и «Оставаться на фоне» - PullRequest
0 голосов
/ 22 января 2020

Я пишу небольшое приложение, которое показывает некоторые виджеты на рабочем столе (например, с ресурсами ЦП, ресурсами памяти и т. Д. c.)

Там у меня есть меню настроек, где я хочу выбрать следующее:

  • Виджет -> Всегда сверху
  • Виджет -> Действует как обычно Окно
  • Виджет -> Оставаться на фоне

Итак, функция «Всегда сверху» работает так, как мне хотелось бы (с wx.STAY_ON_TOP) -> окно не свернуто (если все остальные windows свернуты -> это нормально)

НО: для "Оставаться на заднем плане" окно должно оставаться прямо "над" фоном и не должно быть свернуто -> если все windows свернуты.

Помещение Рамка с .lower () на заднем плане явно недостаточна. Я ищу что-то вроде wx.STAY_ON_BACKGROUND Кроме того, щелкнув по нему, окно можно снова вывести на передний план (-> это тоже НЕ то, что я хочу)

Есть у кого-нибудь идея?

if location == 0:
    # Always on Top
    #
    new_style = actual_style | wx.STAY_ON_TOP
    self.SetWindowStyle(new_style)

elif location == 1:
    # Normal
    #
    new_style = actual_style ^ wx.STAY_ON_TOP
    self.SetWindowStyle(new_style)          

elif location == 2:
    # On Background
    #
    new_style = actual_style ^ wx.STAY_ON_TOP
    self.SetWindowStyle(new_style)

    self.Lower()
...