如何能够拖动面板以在wxribbon中为wxpython重新排序它们

时间:2014-02-12 17:49:58

标签: user-interface wxpython drag wxwidgets

我正在建立一个GUI,我有一个几页的wxribbon,每页上都有几个带按钮的面板。我想要的是允许用户能够拖动页面上的面板,根据需要重新排序。我是wxpython的新手,我不知道该怎么做。我只需要一些指导如何做到这一点。任何帮助都会很棒。谢谢。我附上了一个带面板的简单色带代码。

self._ribbon = RB.RibbonBar(self, wx.ID_ANY, size = (1368,350), style = RB.RIBBON_BAR_DEFAULT_STYLE | RB.RIBBON_BAR_ALWAYS_SHOW_TABS)

workpiece = RB.RibbonPage(self._ribbon, WORKPIECE, "Workpiece", Bitmap("eye.xpm"))
panel1 = RB.RibbonPanel(workpiece,wx.ID_ANY,"New Block",Bitmap("selection_panel.xpm"))
panel2 = RB.RibbonPanel(workpiece,wx.ID_ANY,"New Block",Bitmap("selection_panel.xpm"))
panel3 = RB.RibbonPanel(workpiece,wx.ID_ANY,"New Block",Bitmap("selection_panel.xpm"))

1 个答案:

答案 0 :(得分:3)

不幸的是,wxPython没有内置该功能。我所知道的最接近的是AUI框架中的“可停靠”的痛苦。我建议看一下,尤其是wx.lib.agw.aui中的纯Python版AUI。您可以在wxPython演示中看到它的使用示例。

我在想你可以使用功能区控件内部的一个底座,并为它添加停靠的窗格,然后可以移动它。我不确定这是否会按照你期望的方式工作,但如果不创造新的东西,它是最好的。否则,您将不得不创建自定义小部件。