What is meide?
meide is an ui interface creation library. You can use it to create wxPython based user interface. It can deal with several sizer classes, for example: BoxSizer, GridBagSizer, StaticBoxSizer, and it also provides an easy way to create widgets, like: StaticText, TextCtrl, CheckBox, etc. You know creating ui manually is hard work, and that's why meide was created.
What are the goals of meide?
- Simplify sizer creation
- Simplify widgets creation
- Simplify frame creation, such as Dialog, Panel, etc.
- Support SetValue and GetValue methods to value-fields
- Support event binding
- Supports validation
- Make all of the above as easy as I can
meide is still under active development, please keep an eye on it. Maybe you can find something very useful. If you have any suggestion/comments, please feel free to email me at limodou@gmail.com.
Built-in wx widgets
Layout
| Name | underlying wx widgets class | proportion |
| HBox | wx.BoxSizer(wx.HORIZONTAL) | (-1, 0) |
| VBox | wx.BoxSizer(wx.VERTICAL) | (-1, -1) |
| Grid | wx.GridBagSizer(self.vgap, self.hgap) | (-1, 0) |
| SimpleGrid | Two columns grid | (-1, 0) |
| HGroup | wx.StaticBoxSizer(wx.StaticBox(win, -1, self.title), wx.HORIZONTAL) | (-1, 0) |
| VGroup | wx.StaticBoxSizer(wx.StaticBox(win, -1, self.title), wx.VERTICAL) | (-1, -1) |
non-Value Element
| Name | underlying wx widgets class | proportion |
| Label | wx.StaticText | (0, 0) |
| Button | wx.Button | (0, 0) |
| List | ui.List (It's a custom ListCtrl, also written by myself(limodou)) | (-1, -1) |
| CheckList | ui.List (It's a custom ListCtrl, also written by myself(limodou)) | (-1, -1) |
| ListBox | wx.ListBox | (-1, -1) |
| Tree | wx.TreeCtrl | (-1, -1) |
Value Element
| Name | underlying wx widgets class | proportion |
| Text | wx.TextCtrl | (-1, 0) |
| Password | wx.TextCtrl(style=wx.TE_PASSWORD) | (-1, 0) |
| MultiText | wx.TextCtrl(style=wx.TE_MULTILINE) | (-1, -1) |
| Int | wx.lib.intctrl.IntCtrl | (0, 0) |
| IntSpin | wx.SpinCtrl | (0, 0) |
| Check | wx.CheckBox | (0, 0) |
| Check3D | wx.CheckBox(style=wx.CHK_3STATE) | (0, 0) |
| ComboBox | wx.ComboBox | (-1, 0) |
| SingleChoice | wx.ComboBox(style=wx.CB_READONLY) | (-1, 0) |
| MulitChoice | wx.CheckListBox | (-1, -1) |
| Date | wx.DatePickerCtrl(style=wx.DP_DROPDOWN | wx.DP_SHOWCENTURY) | (0, 0) |
| Time | wx.lib.masked.TimeCtrl(fmt24hr=True) | (0, 0) |
| OpenFile | Custom widgets, consisted with a TextCtrl and a filename browser button | (-1, 0) |
| SaveFile | similar with OpenFile | (-1, 0) |
| Dir | Custom widgets, consisted with a TextCtrl and a directroy browser button | (-1, 0) |
| Radio | wx.RadioButton | (0, 0) |
| HRadioBox | wx.RadioBox(style=wx.RA_SPECIFY_COLS, majorDimension=1) | (0, 0) |
| VRadioBox | wx.RadioBox(style=wx.RA_SPECIFY_ROWS, majorDimension=1) | (0, 0) |
How to use meide
The steps are easy:
- Create a layout;
- Add widgets or sub-layout;
- Bind event or add validator; and
- Invoke the create method
For more details you should read the document Two working fashions of meide's creation below.
Documents
Source Code and Screenshots Gallery
There are many GUI screenshots you can see, and also including source code, if you like you can post your own examples to me.
Visit Source Code and Screenshots Gallery
Who uses meide
- UliPad Another Python project of mine, which is a free wxPython+Python-based editor.
If you're using meide or plan to use it, Please let me know. I hope you'll enjoy it. Thanks.
Examples
There are some examples in the tests subdirectroy.