1

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()

但是当我单击确定时的结果总是“Arial”。有什么想法吗?也许我需要制作一个自定义对话框类?

谢谢,

-RMW混沌

4

2 回答 2

1

wx.MessageDialog 是围绕操作系统/系统消息对话框的包装器。我怀疑每个操作系统只允许进行如此多的编辑或根本不允许。所以是的,如果字体很重要,使用自定义 wx.Dialog 或通用消息对话框小部件 (wx.lib.agw.genericmessagedialog) 是要走的路。

于 2012-06-13T17:47:50.777 回答
1

我浏览了整个互联网,发现没有人真正花时间回答这个问题,而只是告诉用户创建自己的对话类。实际上有一种简单的方法可以让您更改消息对话框的字体。抓取对话框的 textCtrl 对象,然后设置该对象的字体应该可以解决问题。

只需更换:

dialog.SetFont(font)

txt_ctrl = dialog.text
txt_ctrl.SetFont(font)

让我知道这是否适合您。

于 2016-03-30T18:20:26.523 回答