网上找了很多例子都不可行,最后根据官方例子改的,需要通过wxApp来调用设置透明度才生效

import wx

# !/usr/bin/env python
# coding:utf-8

from wx import *


class Frame(wx.Frame):
    def __init__(self, *args, **kwargs):
        super(Frame, self).__init__(*args, **kwargs, style=wx.NO_BORDER | wx.STAY_ON_TOP)
        # 初始化窗口UI
        self.init_ui()

    def init_ui(self):
        panel = wx.Panel(self, id=-1, pos=(0, 0), size=(10, 500), style=wx.NO_BORDER)
        # 键盘按下事件
        panel.Bind(wx.EVT_KEY_DOWN, self.key_down)
        self.SetSize(1000, 500)
        self.Centre()
        self.Show(True)

    def key_down(self, e):
        print(e)
        key_code = e.GetKeyCode()
        if key_code == wx.WXK_ESCAPE:
            self.Close()  # 关闭窗口
        else:
            print("按了%s键" % key_code)


class Test(wx.App):
    def OnInit(self):
        self.frame = Frame(parent=None, title='Spare')
        self.frame.SetTransparent(100)
        return True


if __name__ == '__main__':
    app = Test()
    app.MainLoop()

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐