Python 2.7.3 x64 wxPython 2.8 x64
我无法更改wxpython消息对话框的字体。我想使用固定宽度的字体(我认为wxFAMILY_MODERN是)来控制输出的格式。这是我用来测试的代码......
def infDialog (self, msg, title):
""" Display Info Dialog Message """
font = wx.Font(14, wx.MODERN, wx.NORMAL, wx.NORMAL)
style = wx.OK | wx.ICON_INFORMATION | wx.STAY_ON_TOP
dialog = wx.MessageDialog(self, msg, title, style)
dialog.CenterOnParent()
dialog.SetFont(font)
result = dialog.ShowModal()
if result == wx.ID_OK:
print dialog.GetFont().GetFaceName()
dialog.Destroy()
return
# End infDialog()
但是单击OK时的结果总是“Arial”。有什么想法吗?也许我需要创建一个自定义对话框类?
谢谢,
-RMWChaos
答案 0 :(得分:1)
我在互联网上寻找并发现没有人真正花时间回答这个问题,只是告诉用户创建自己的对话框类。实际上有一种简单的方法可以更改消息对话框的字体。抓住对话框的textCtrl对象,然后设置该对象的字体应该可以解决问题。
简单地替换:
dialog.SetFont(font)
与
txt_ctrl = dialog.text
txt_ctrl.SetFont(font)
请告诉我这是否适合您。
答案 1 :(得分:0)
wx.MessageDialog是OS / system消息对话框的包装器。我怀疑每个操作系统只允许编辑或根本不编辑。所以是的,如果字体很重要,使用自定义的wx.Dialog或通用消息对话框小部件(wx.lib.agw.genericmessagedialog)就可以了。