python - 如何使用 wxPython 布局 3 Pane 窗口?

标签 python layout wxpython elasticlayout

我正在尝试找到一种使用 wxPython 布局 3 Pane 窗口的简单方法。

我想在左 Pane 中有一个树列表,然后有一个分成两部分的右 Pane - 在顶部有一个编辑组件,在底部有一个网格组件。

类似的东西:

--------------------------------------
|             |                      |
|             |        Edit          |
|  Tree       |        Control       |
|  Control    |                      |
|             |----------------------|
|             |                      |
|             |        Grid          |
|             |                      |
--------------------------------------

我希望窗口可以调整大小,让用户能够通过拖动边框来更改窗口内每个组件的(相对)大小。

我认为我需要一些大小调整器和/或拆分器窗口组件的组合,但在文档或网络上找不到此类窗口的合适示例。

最佳答案

这是一个使用 wx.aui 和三个面板的非常简单的布局。我想您可以轻松调整它以满足您的需求。

Orjanp...

import wx
import wx.aui

class MyFrame(wx.Frame):
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)

        self.mgr = wx.aui.AuiManager(self)

        leftpanel = wx.Panel(self, -1, size = (200, 150))
        rightpanel = wx.Panel(self, -1, size = (200, 150))
        bottompanel = wx.Panel(self, -1, size = (200, 150))

        self.mgr.AddPane(leftpanel, wx.aui.AuiPaneInfo().Bottom())
        self.mgr.AddPane(rightpanel, wx.aui.AuiPaneInfo().Left().Layer(1))
        self.mgr.AddPane(bottompanel, wx.aui.AuiPaneInfo().Center().Layer(2))

        self.mgr.Update()


class MyApp(wx.App):
    def OnInit(self):
        frame = MyFrame(None, -1, '07_wxaui.py')
        frame.Show()
        self.SetTopWindow(frame)
        return 1

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

关于python - 如何使用 wxPython 布局 3 Pane 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/523363/

相关文章:

python - 为什么 Django 不从数据库中返回日期时间字段?

python - 使用 Tk Grid Geometry Manager 的 GUI 布局

android - 我拍摄的照片没有出现在 ImageView 中

python - wxPython 的 MVC 框架

python - 如何说服鼠标右键弹出菜单在wxPython中显示在鼠标光标位置附近?

python - 如何删除 Matplotlib 烛台图表中的周末?

python - 如何使用字符串作为 csv 阅读器的输入而不将其存储到文件中

visual-c++ - 如何使 MFC 复选框只读但保持启用文本?

python - 无法专注于 OS/X 中的小部件

python跨平台测试: mocking os.名称