2017-10-30 31 views
-1

すべて。 複数の画面を切り替えることができます。意味は、最初のものがメインで、次にボタンまたは外部スイッチが有効になっているときにページ#2を見ることができます。その中に最初のボタンに戻るためのボタン、または#3に行くためのボタンがあります。原因私は大きなRPMメーターのメイン画面を持っているので、同じページに3メートルをすべて表示するか、または他のページの生データを表示するか、セットアップページまたは将来の発展。私はグラフィックのために全画面スペースを使用しています。おそらく何らかのイベントのあるページを「隠す」または「表示する」のようなものでしょう。私はこれまでのすべてのページに対して1つのクラススクリプトを持っていますが、1つのクラスにそれらをグループ化することはできません。あなたの助けをありがとうwxpythonのマルチスクリーン画面

答えて

0

私は数年前にこのコンセプトについて書いたhere。私は先に行ってきましたANその記事からの例を再現:

import wx 
import wx.grid as gridlib 


class PanelOne(wx.Panel): 
    """"""  

    def __init__(self, parent): 
     """Constructor""" 
     wx.Panel.__init__(self, parent=parent) 
     txt = wx.TextCtrl(self) 


class PanelTwo(wx.Panel): 
    """"""  

    def __init__(self, parent): 
     """Constructor""" 
     wx.Panel.__init__(self, parent=parent) 

     grid = gridlib.Grid(self) 
     grid.CreateGrid(25,12) 

     sizer = wx.BoxSizer(wx.VERTICAL) 
     sizer.Add(grid, 0, wx.EXPAND) 
     self.SetSizer(sizer) 


class MyForm(wx.Frame):  

    def __init__(self): 
     wx.Frame.__init__(self, None, wx.ID_ANY, 
          "Panel Switcher Tutorial") 

     self.panel_one = PanelOne(self) 
     self.panel_two = PanelTwo(self) 
     self.panel_two.Hide() 

     self.sizer = wx.BoxSizer(wx.VERTICAL) 
     self.sizer.Add(self.panel_one, 1, wx.EXPAND) 
     self.sizer.Add(self.panel_two, 1, wx.EXPAND) 
     self.SetSizer(self.sizer) 


     menubar = wx.MenuBar() 
     fileMenu = wx.Menu() 
     switch_panels_menu_item = fileMenu.Append(wx.ID_ANY, 
                "Switch Panels", 
                "Some text") 
     self.Bind(wx.EVT_MENU, self.onSwitchPanels, 
        switch_panels_menu_item) 
     menubar.Append(fileMenu, '&File') 
     self.SetMenuBar(menubar)  

    def onSwitchPanels(self, event): 
     """""" 
     if self.panel_one.IsShown(): 
      self.SetTitle("Panel Two Showing") 
      self.panel_one.Hide() 
      self.panel_two.Show() 
     else: 
      self.SetTitle("Panel One Showing") 
      self.panel_one.Show() 
      self.panel_two.Hide() 
     self.Layout() 


# Run the program 
if __name__ == "__main__": 
    app = wx.App(False) 
    frame = MyForm() 
    frame.Show() 
    app.MainLoop() 

ここで基本的な考え方は、Hide() 1枚のパネルとShow()別です。 wxPythonが提供するノートブックコントロールも同様の機能を備えているので、ノートブックコントロールを参照することもできます。

関連する問題