0

我在 wxPython 工具栏中有 textctrl,我不知道如何将它与图标(22x22)对齐,并且在工具栏图标和文本控件以及框架边框之间有一些间距/填充。

import wx

class MyGUI(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.Size(500, 500))

        menubar = wx.MenuBar()
        file = wx.Menu()
        help = wx.Menu()
        file.Append(101, '&Open', 'Open a new document')
        file.Append(102, '&Save', 'Save the document')
        file.AppendSeparator()
        quit = wx.MenuItem(file, 105, '&Quit\tCtrl+Q', 'Quit the Application')
        quit.SetBitmap(wx.Image('media/22/actions/system-log-out.png', wx.BITMAP_TYPE_PNG).ConvertToBitmap())
        file.AppendItem(quit)

        menubar.Append(file, '&File')
        menubar.Append(help, '&Help')
        self.SetMenuBar(menubar)
        self.CreateStatusBar()
        self.toolbar = self.CreateToolBar()

        textctrl = self.toolbar.AddControl( wx.TextCtrl( self.toolbar, wx.ID_ANY,size=(100, -1)))
        tconn = self.toolbar.AddLabelTool(wx.ID_UNDO, '', wx.Bitmap('media/22/actions/server-connect-icon.png'))
        tplay = self.toolbar.AddLabelTool(wx.ID_REDO, '', wx.Bitmap('media/22/actions/media-playback-start.png'))

        self.toolbar.AddSeparator()
        texit = self.toolbar.AddLabelTool(wx.ID_EXIT, '', wx.Bitmap('media/22/actions/stop.png'))
        self.toolbar.EnableTool(wx.ID_EXIT, False)
        self.toolbar.Realize()

class MyApp(wx.App):
    def OnInit(self):
        frame = MyGUI(None, -1, 'MyGUI')
        frame.SetBackgroundColour('#004681')
        frame.SetIcon(wx.Icon('media/launch.ico', wx.BITMAP_TYPE_ICO))
        frame.Show(True)
        return True


if __name__ == '__main__':
    app = MyApp(0)
    app.MainLoop()
4

1 回答 1

2

工具栏小部件遵循操作系统本机工具栏的外观,所以真的没有办法改变它。请参阅以下线程:

其中有一些使用空白图像或标签作为间距的解决方法。或者,您可以使用水平框尺寸器创建自己的工具栏并将所有小部件添加到其中。然后,您将能够使用 sizer 将事物分开一点。

于 2013-11-12T17:09:08.680 回答