Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wxpython更改消息对话框字体?_Python_Fonts_Wxpython_Messagedialog - Fatal编程技术网

wxpython更改消息对话框字体?

wxpython更改消息对话框字体?,python,fonts,wxpython,messagedialog,Python,Fonts,Wxpython,Messagedialog,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 =

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

wx.MessageDialog是操作系统/系统消息对话框的包装器。我怀疑每个操作系统只允许这么多的编辑,或者根本不允许。是的,如果字体很重要,那么使用自定义wx.Dialog或通用消息对话框小部件(wx.lib.agw.genericmessagedialog)是一个不错的选择。

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

只需替换:

dialog.SetFont(font)


让我知道这是否适合您。

我也在考虑检查高级通用小部件。谢谢你的回复!
txt_ctrl = dialog.text
txt_ctrl.SetFont(font)