要素の位置を制御することは可能wx.MenuBar()
ですか? ドキュメントで見つけることができませんが、オプションのようです。デフォルトではfile
、view
、edit
、 などのメニュー要素が左端に配置され、追加の各要素が右に拡張されます。私は非常に単純な GUI を使用しているため、help というメニュー要素が 1 つしかありません。RIGHT
デフォルトの代わりに配置したいと思いますLEFT
。
2 に答える
実際には、メニューを必要な位置に配置する方法があります。
- 追記(メニュー、タイトル)
メニューを MenuBar の最後に追加します (つまり、一番右の要素として配置します)。title は新しいメニューのタイトルです。成功した場合は True を返し、それ以外の場合は False を返します。
- 挿入(位置、メニュー、タイトル)
メニューを pos の位置に挿入します (その後、GetMenu(pos)==menu が True になります)。それ以降の位置にあるすべてのメニューは右にシフトされます。pos=0 は最初 (左) の位置です。pos=GetMenuCount() の場合、Append() を使用した場合と同様の結果になります。title は新しいメニューのタイトルです。成功した場合は True を返し、それ以外の場合は False を返します。
- 削除(位置)
位置 pos からメニューを削除すると、その後の位置にあるすべてのメニューが左にシフトされます。削除されたメニューを返します。
- 置換(位置、メニュー、タイトル)
位置 pos のメニューを置き換え、MenuBar の他のメニューに影響を与えません。その位置にあったメニューを返します。
私の英語でごめんなさい)
wx.MenuBar 内のメニュー要素の順序は、メニューバーに追加された順序に基づいています。以下のコードでは、「Utils」が「File」の左側に表示されます (最後の 2 行がキーです)。
menubar = wx.MenuBar()
file1 = wx.Menu()
file1.Append(81, 'Edit Accounts', '')
file1.AppendSeparator()
file1.Append(88, 'Set Link Duration for selected items', '')
file1.AppendSeparator()
file1.Append(82, '&Quit', 'Goodbye!')
util1 = wx.Menu()
util1.Append(85, 'View Log File', 'View Log File')
util1.Append(86, 'Clear Old Log files', 'Clear old log files')
util1.Append(87, 'Open APPDATA folder', 'Open APPDATA folder')
util1.AppendSeparator()
util1.Append(83, 'Update Sizes for Selected Folders',
'Update sizes for the selected folders in sqlite DB')
util1.Append(84, 'Zap sqlite DB',
'Clean out sqlite DB (needs to be done occasionally)')
menubar.Append(util1, '&Utils')
menubar.Append(file1, '&File')
がんばれ、マイク