2014-02-08 3 views
1

Я играл с WxFormBuilder, и я зациклился на том, как сделать простую задачу по размещению кнопки в разных местах на экране. Теперь самым интуитивным было бы перетащить, но WxFormBuilder (к сожалению) не имеет этой функции.Как переместить кнопку в WxFormBuilder

ответ

0

Я предлагаю вам взглянуть на использование sizers. Это гораздо лучший способ разложить различные компоненты на форме. Если вы хотите переместить кнопку вокруг, вам нужно будет указать позицию в коде вручную.

1

Чтобы переместить/позиционировать кнопку в фрейме wxFormBuilder, вы должны складывать кнопку в разных типах sizer, как показано на вкладке «Макет» , Затем используйте wxVERTICAL или wxHORIZONTAL свойства nof sizers для управления ориентацией кнопки.

~ Все в wxFormBuilder больше всего помещается в поле (sizer), которое является родительским полем или дочерним блоком. Здесь нет перетаскивания!

~ Обычно я рисую/рисую свой макет на бумаге перед тем, как начинать на wxFormBuilder.

~ Вы также можете использовать «spacer», чтобы поместить кнопку в пустое/пустое пространство.

~ «Align и Stretch» ​​свойства всегда удобно в позиционировании кнопки

~ Этот процесс относится к любой виджет/управления.

Проверьте «Дерево объектов» на изображении ниже, чтобы направить вас на кнопки позиционирования в другом месте на рамке.

enter image description here

Код WxPython для изображения, как показано ниже: -

import wx 

class MyFrame1 (wx.Frame): 

    def __init__(self, parent): 
     wx.Frame.__init__ (self, parent, id = wx.ID_ANY, title = wx.EmptyString, pos = wx.DefaultPosition, size = wx.Size(500,317), style = wx.DEFAULT_FRAME_STYLE|wx.TAB_TRAVERSAL) 

     self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize) 

     bSizer1 = wx.BoxSizer(wx.VERTICAL) 

     bSizer2 = wx.BoxSizer(wx.HORIZONTAL) 

     bSizer3 = wx.BoxSizer(wx.VERTICAL) 

     self.m_button1 = wx.Button(self, wx.ID_ANY, u"Button1", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer3.Add(self.m_button1, 0, wx.ALL, 5) 

     self.m_button2 = wx.Button(self, wx.ID_ANY, u"Button2", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer3.Add(self.m_button2, 0, wx.ALL, 5) 

     self.m_button3 = wx.Button(self, wx.ID_ANY, u"Button3", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer3.Add(self.m_button3, 0, wx.ALL, 5) 

     self.m_button4 = wx.Button(self, wx.ID_ANY, u"Button4", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer3.Add(self.m_button4, 0, wx.ALL, 5) 

     self.m_button5 = wx.Button(self, wx.ID_ANY, u"Button5", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer3.Add(self.m_button5, 0, wx.ALL, 5) 

     self.m_button6 = wx.Button(self, wx.ID_ANY, u"Button6", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer3.Add(self.m_button6, 0, wx.ALL, 5) 

     self.m_button7 = wx.Button(self, wx.ID_ANY, u"Button7", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer3.Add(self.m_button7, 0, wx.ALL, 5) 


     bSizer2.Add(bSizer3, 0, wx.EXPAND, 5) 

     bSizer4 = wx.BoxSizer(wx.VERTICAL) 

     bSizer5 = wx.BoxSizer(wx.HORIZONTAL) 

     self.m_button8 = wx.Button(self, wx.ID_ANY, u"Button8", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer5.Add(self.m_button8, 0, wx.ALL, 5) 

     self.m_button9 = wx.Button(self, wx.ID_ANY, u"Button9", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer5.Add(self.m_button9, 0, wx.ALL, 5) 

     self.m_button10 = wx.Button(self, wx.ID_ANY, u"Button10", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer5.Add(self.m_button10, 0, wx.ALL, 5) 

     self.m_button11 = wx.Button(self, wx.ID_ANY, u"Button11", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer5.Add(self.m_button11, 0, wx.ALL, 5) 


     bSizer4.Add(bSizer5, 0, 0, 5) 

     gSizer6 = wx.GridSizer(0, 2, 0, 0) 

     self.m_button12 = wx.Button(self, wx.ID_ANY, u"Button12", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer6.Add(self.m_button12, 0, wx.ALL, 5) 

     self.m_button13 = wx.Button(self, wx.ID_ANY, u"Button13", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer6.Add(self.m_button13, 0, wx.ALL, 5) 

     self.m_button14 = wx.Button(self, wx.ID_ANY, u"Button14", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer6.Add(self.m_button14, 0, wx.ALL, 5) 

     self.m_button15 = wx.Button(self, wx.ID_ANY, u"Button15", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer6.Add(self.m_button15, 0, wx.ALL, 5) 


     gSizer6.AddSpacer((0, 0), 1, wx.EXPAND, 5) 


     bSizer4.Add(gSizer6, 0, wx.ALIGN_CENTER_HORIZONTAL, 5) 

     gSizer7 = wx.GridSizer(0, 2, 0, 0) 

     self.m_button16 = wx.Button(self, wx.ID_ANY, u"Button16", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer7.Add(self.m_button16, 0, wx.ALL, 5) 

     self.m_button17 = wx.Button(self, wx.ID_ANY, u"Button17", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer7.Add(self.m_button17, 0, wx.ALL, 5) 

     self.m_button18 = wx.Button(self, wx.ID_ANY, u"Button18", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer7.Add(self.m_button18, 0, wx.ALL, 5) 

     self.m_button19 = wx.Button(self, wx.ID_ANY, u"Button19", wx.DefaultPosition, wx.DefaultSize, 0) 
     gSizer7.Add(self.m_button19, 0, wx.ALL, 5) 


     bSizer4.Add(gSizer7, 1, wx.ALIGN_CENTER_HORIZONTAL, 5) 


     bSizer2.Add(bSizer4, 1, wx.EXPAND, 5) 


     bSizer1.Add(bSizer2, 1, wx.EXPAND, 5) 

     bSizer8 = wx.BoxSizer(wx.HORIZONTAL) 

     self.m_button20 = wx.Button(self, wx.ID_ANY, u"Button20", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer8.Add(self.m_button20, 0, wx.ALL, 5) 

     self.m_button21 = wx.Button(self, wx.ID_ANY, u"Button21", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer8.Add(self.m_button21, 0, wx.ALL, 5) 

     self.m_button22 = wx.Button(self, wx.ID_ANY, u"Button22", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer8.Add(self.m_button22, 0, wx.ALL, 5) 

     self.m_button23 = wx.Button(self, wx.ID_ANY, u"Button23", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer8.Add(self.m_button23, 0, wx.ALL, 5) 

     self.m_button24 = wx.Button(self, wx.ID_ANY, u"Button24", wx.DefaultPosition, wx.DefaultSize, 0) 
     bSizer8.Add(self.m_button24, 0, wx.ALL, 5) 


     bSizer1.Add(bSizer8, 1, wx.EXPAND, 5) 


     self.SetSizer(bSizer1) 
     self.Layout() 

     self.Centre(wx.BOTH) 

    def __del__(self): 
     pass 


if __name__ == '__main__': 
    app = wx.App() 
    frame = MyFrame1(None).Show() 
    app.MainLoop() 
Смежные вопросы