我对wxPython
相当新,并试图在背景图片上放置一些按钮。我无法在wxPython
中找到可以包含图像的容器,并且在其上面有一些按钮。我使用下面的代码:
import wx
########################################################################
class MainPanel(wx.Panel):
""""""
#----------------------------------------------------------------------
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent=parent)
self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)
self.frame = parent
sizer = wx.BoxSizer(wx.VERTICAL)
hSizer = wx.BoxSizer(wx.HORIZONTAL)
button1 = wx.Button(self, label='Button1', pos=(100, 100), size=(175, 28))
sizer.Add(button1, 0, wx.ALL, 5)
hSizer.Add((1,1), 1, wx.EXPAND)
hSizer.Add(sizer, 0, wx.TOP, 100)
hSizer.Add((1,1), 0, wx.ALL, 75)
self.SetSizer(hSizer)
self.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
#----------------------------------------------------------------------
def OnEraseBackground(self, evt):
"""
Add a picture to the background
"""
# yanked from ColourDB.py
dc = evt.GetDC()
if not dc:
dc = wx.ClientDC(self)
rect = self.GetUpdateRegion().GetBox()
dc.SetClippingRect(rect)
dc.Clear()
bmp = wx.Bitmap("admin.png")
dc.DrawBitmap(bmp, 0, 0)
########################################################################
class MainFrame(wx.Frame):
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
wx.Frame.__init__(self, None, size=(320, 243))
panel = MainPanel(self)
self.Center()
########################################################################
class Main(wx.App):
""""""
#----------------------------------------------------------------------
def __init__(self, redirect=False, filename=None):
"""Constructor"""
wx.App.__init__(self, redirect, filename)
dlg = MainFrame()
dlg.Show()
#----------------------------------------------------------------------
if __name__ == "__main__":
app = Main()
app.MainLoop()
但button1
没有得到妥善安排的问题 - 无论我设置什么
pos=(100, 100), size=(175, 28)
值 - 它放在同一位置(?)
此外,我不想要最大化,最小化和恢复按钮选项 - 可能只有一个关闭窗口的按钮 - 如何从框架/应用程序窗口中删除默认的最大化,最小化和恢复按钮?
======= UPDATE =======
下面是我需要创建GUI界面的文本和按钮的确切图像 - 我尝试了很多像这样的图形或类似的图形但我无法 - 我已经发布了代码 - 请让我知道我怎么能做到这一点?
答案 0 :(得分:0)
我写了一篇关于在背景图片上放置背景图片的文章,该文章也适用于您的用例。你可以在这里阅读:
要删除标题栏中的各个按钮,您需要弄乱框架的样式标记。另一个线程谈到了一点:
那里的例子显示了以下代码:
frame = wx.Frame( None, title="Hello wxPython", style = wx.CLOSE_BOX | wx.CAPTION | wx.RESIZE_BORDER )
这应该让你非常接近你想要的。