0

我对 Linux 操作系统上的 wxPython 相当陌生。我一直在尝试创建一个 GUI 屏幕,如下所示。

但似乎 wxPython 很难这样做,因为我面临下面列出的问题:

  1. 不能将按钮放置在具有相同外观和感觉的图像上 - “选择操作类型”、“统计”和“返回”?

  2. 能够按以下要求设置按钮颜色吗?此外,按钮需要在边缘弯曲

  3. 要包装的按钮文本的标签?

代码:

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)

        for num in range(2):
            label = "Choose To Change Address" # Sample Button 
            btn = wx.Button(self, label=label)
            sizer.Add(btn, 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("sample.png")
        dc.DrawBitmap(bmp, 0, 0)


########################################################################
class MainFrame(wx.Frame):
    """"""

    #----------------------------------------------------------------------
    def __init__(self):
        """Constructor"""
        wx.Frame.__init__(self, None, size=(320, 243), style=wx.DEFAULT_FRAME_STYLE ^ wx.RESIZE_BORDER)
        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()
4

1 回答 1

0

可能您必须使用自己的绘图功能创建自己的按钮类

或者您可以使用其他人制作的按钮。

请参阅wxpython-a-tour-of-buttons-part-2-of-2/上的示例

于 2013-11-07T13:56:20.557 回答