gpt4 book ai didi

python - wxpython:wxpython 中的透明面板

转载 作者:行者123 更新时间:2023-11-28 21:15:32 28 4
gpt4 key购买 nike

在 wxpython 中使用 SetTransparent(val) 可以使整个框架透明。但是我可以让其中的单个面板透明吗?

我试过使用 panelobj.SetTransparent(val) 但没用。

import wx

class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title,size=(250, 250))

topPanel = wx.Panel(self)

panel1 = wx.Panel(topPanel, -1)
panel1.SetTransparent(100)
panel2 = wx.Panel(topPanel, -1)
panel2.SetBackgroundColour('gray')

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(panel1,1,flag = wx.EXPAND|wx.ALL)
sizer.Add(panel2,1,flag = wx.EXPAND|wx.ALL)

topPanel.SetSizer(sizer)



class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'frame')
frame.Show(True)
return True

app = MyApp(0)
app.MainLoop()

假设我想为 panel1 设置透明度。

最佳答案

是的,这是可能的。您可以使用 style=wx.TRANSPARENT_WINDOW

示例代码:我将panel1设为透明,并将topPanel设为绿色。这就是为什么您在 panel2 顶部看到绿色的原因,因为 panel1 是透明的。

import wx

class MyFrame(wx.Frame):
def __init__(self, parent, id, title):
wx.Frame.__init__(self, parent, id, title,size=(250, 250))
topPanel = wx.Panel(self, -1)
topPanel.SetBackgroundColour('green')
panel1 = wx.Panel(topPanel, -1, style=wx.TRANSPARENT_WINDOW)
#panel1.SetTransparent(100)
panel2 = wx.Panel(topPanel, -1)
panel2.SetBackgroundColour('gray')

sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(panel1,1,flag = wx.EXPAND|wx.ALL)
sizer.Add(panel2,1,flag = wx.EXPAND|wx.ALL)

topPanel.SetSizer(sizer)



class MyApp(wx.App):
def OnInit(self):
frame = MyFrame(None, -1, 'frame')
frame.Show(True)
return True

app = MyApp(0)
app.MainLoop()

关于python - wxpython:wxpython 中的透明面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29941789/

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