メニューバーとメニューバーにいくつかの項目がある wxpython GUI をセットアップしました。私がやりたいのは、メニュー バーの項目 (例: ファイル - オプション) を選択することです。[オプション] を選択すると、コードにさまざまなパラメーターを設定できるダイアログ ボックスがポップアップ表示されます。同様の動作は wx.FontDialog と wx.FileDialog になります - ただし、選択可能なオプションとしてラジオ ボタンとチェック ボックスを使用できるという点で、カスタムにしたいと考えています。どうすればいいですか?
私のコードのスニペットは次のとおりです。
ここでは、メイン アプリケーションと GUI の一部をセットアップします (別のセクションでレイアウトとボックス サイズ設定を行います)。
class TMainForm(wx.Frame):
def __init__(self, *args, **kwds):
kwds["style"] = wx.DEFAULT_FRAME_STYLE
wx.Frame.__init__(self, *args, **kwds)
self.Splitter = wx.SplitterWindow(self, -1, style=wx.SP_3D|wx.SP_BORDER)
self.PlotPanel = wx.Panel(self.Splitter, -1)
self.FilePanel = wx.Panel(self.Splitter, -1)
#self.SelectionPanel = wx.Panel(self.Splitter,-1)
self.Notebook = wx.Notebook(self.FilePanel, -1)#, style=0)
self.ReportPage = wx.Panel(self.Notebook, -1)
self.FilePage = wx.Panel(self.Notebook, -1)
メニューバーの一部を設定した場所は次のとおりです。
self.MainMenu = wx.MenuBar()
self.FileMenu = wx.Menu()
self.OptimizeMenu = wx.Menu()
self.HelpMenu = wx.Menu()
self.OptimizeOptions= wx.MenuItem(self.OptimizeMenu, 302, "&Select Parameters","Select Parameters for Optimization",wx.ITEM_NORMAL)
self.OptimizeMenu.AppendItem(self.OptimizeOptions)
self.MainMenu.Append(self.OptimizeMenu, "&Optimization")
ここで、メニュー バーの「オプション」部分にイベントをバインドします。これをクリックすると、ポップアップメニューダイアログが表示されます
self.Bind(wx.EVT_MENU, self.OnOptimizeOptions, self.OptimizeOptions)
これは、ポップアップメニューが定義されることを望んでいる関数です。できればこの形式でやりたいです(別々のクラスを行うのではなく)。
def OnOptimizeOptions(self,event):
give me a dialog box (radio buttons, check boxes, etc)
スニペットのみを示しましたが、私のコードはすべて機能します。私の GUI とメニュー バーは正しく設定されています - wx.FileDialog や wx.FontDialog メニューのようなポップアップ メニューを取得する方法がわかりません。どんな助けでも素晴らしいでしょう!ありがとう