如何解决如何在 wx FlatMenu 上更改颜色
我正在尝试创建一个外观可以完全自定义的弹出菜单。由于 wx.Menu 基于本机小部件,我尝试使用 FlatMenu,但即使文档指出这种自定义是可能的,我也未能找到如何去做(菜单项文本颜色除外)。有人可以告诉我如何在以下代码中更改 FlatMenu 的背景和边框颜色(我不使用 MenuBar,因为我想创建一个弹出菜单)? 或者,如果我错误地认为 FlatMenu 可以实现,有人可以指出另一个允许这样做的模块吗?
import wx
from wx.lib.agw.flatmenu import FlatMenu as FlatMenu,FlatMenuItem as FlatMenuItem
class MyFrame(wx.Frame):
def __init__(self,parent):
wx.Frame.__init__(self,parent,-1,"FlatMenu Demo")
panel = wx.Panel(self,-1)
self.btn = wx.Button(panel,"Hello",(15,12),(100,120))
self.btn.Bind(wx.EVT_BUTTON,self.pop)
self.menubar = FlatMenuBar(self,-1)
self.orderMenu = FlatMenu(panel)
self.menubar.SetBackgroundColour(wx.RED)
item_title = FlatMenuItem(self.orderMenu,1,"Title","Sort by movie title",wx.ITEM_RAdio,None)
self.Bind(wx.EVT_MENU,self.selected,id=1)
self.orderMenu.AppendItem(item_title)
self.Bind(wx.EVT_MENU,item_title)
item_year = FlatMenuItem(self.orderMenu,2,"Year","Sort by year",id=1)
self.orderMenu.AppendItem(item_year)
self.Bind(wx.EVT_MENU,item_year)
main_sizer = wx.BoxSizer(wx.VERTICAL)
main_sizer.Add(panel,wx.EXPAND)
self.SetSizer(main_sizer)
main_sizer.Layout()
def selected(self,event):
print(event)
def pop(self,event):
print("pop")
x,y = self.btn.GetScreenPosition()
y = y+self.btn.GetSize()[1]
self.orderMenu.Popup(wx.Point(x,y),self)
# our normal wxApp-derived class,as usual
app = wx.App(0)
frame = MyFrame(None)
app.SetTopWindow(frame)
frame.Show()
app.MainLoop()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。