哪个对话框能设置文字样式,怎么修改对话框的默认模板

首页 > 实用技巧 > 作者:YD1662023-10-29 18:10:21

实战wxPython系列-020

哪个对话框能设置文字样式,怎么修改对话框的默认模板(1)

wx.FontDialog提供一个可以进行字体选择的对话框,它继承自wx.Dialog,是wxPython内建的通用对话框。它可以让用户选择所显示的文本的字体类型, 字号大小、样式,格式以及字体的颜色等。通过wx.FontDialog对话框可以通过GUI界面交互方式对文本的外观显示进行精细的调整。

一、wx.FontDialog简介

字体选择对话框类wx.FontDialog提供了对字体各种外观属性的选择,包括:

wx.FontDialog常用方法有:

哪个对话框能设置文字样式,怎么修改对话框的默认模板(2)

图1:wx.FontDialog类继承关系

二、wx.FontData

wx.FontData保存wx.FontDialog的各种信息,它的常用方法有:

三、wx.FontDialog示例

以下的代码演示如何使用wx.FontDialog。

#字体选择对话框(FontDialog) import wx class SampleFontDialog(wx.Frame): def __Init__(self, *args, **kw): super(SampleFontDialog, self).__init__(*args, **kw) self.InitUi() def InitUi(self): #设置标题 self.SetTitle("实战wxPython: 字体选择对话框") #设置窗口尺寸 self.SetSize(480, 360) vSizer = wx.BoxSizer(wx.VERTICAL) btnTest = wx.Button(self, -1, "调整字体") btnTest.Bind(wx.EVT_BUTTON, self.OnSetFont) self.label_text = wx.StaticText(self, -1, style=wx.TE_MULTILINE, size = (-1, 300)) self.label_text.SetLabel("实战wxPython: \n测试wx.FontDialog") self.label_text.SetFont(wx.Font(wx.FontInfo(20))) vSizer.Add(btnTest, wx.ID_ANY, wx.EXPAND|wx.ALIGN_TOP) vSizer.Add(self.label_text, wx.ID_ANY, wx.ALL|wx.ALIGN_CENTER_HORIZONTAL, 40) self.SetSizer(vSizer) self.Centre() def OnSetFont(self, e): dlg = wx.FontDialog(self) if dlg.ShowModal() == wx.ID_OK: data = dlg.GetFontData() new_font = data.GetChosenFont() new_color = data.GetColour().Get() self.label_text.SetFont(new_font) self.label_text.SetForegroundColour(new_color) dlg.Destroy() def main(): app = wx.App() sample = SampleFontDialog(None) sample.Show() app.MainLoop() if __name__ == "__main__": main()

运行上面的代码,在Windows系统下,其界面如图2:

哪个对话框能设置文字样式,怎么修改对话框的默认模板(3)

图2:wx.FontDialog对话框演示

当我们点击”调整字体”按钮后, 将弹出字体选择对话框,如图3所示:

哪个对话框能设置文字样式,怎么修改对话框的默认模板(4)

图3:字体选择对话框

在字体对话框上,选择我们需要设置的字体信息,如图3,我们选择字体为”Consolas”,字形为”粗斜体”,大小为”24”,效果为”下划线”, 颜色为”青色”。点击确定按钮,退出字体选择对话框,回到主窗口,最终效果如图4:

哪个对话框能设置文字样式,怎么修改对话框的默认模板(5)

图4:字体调整效果演示

可以看到,通过获得字体选择对话框选择的字体信息,我们改变了演示字体的外观。

当我们点击字体选择对话框的”确定”按钮后,wx.FontDialog对话框的ShowModal方法返回wx.ID_OK,执行下面的语句:

data = dlg.GetFontData()

获取字体信息数据

new_font = data.GetChosenFont()

获取所选择的字体

new_color = data.GetColour().Get()

获取字体的前景色

self.label_text.SetFont(new_font)

设置新的字体

self.label_text.SetForegroundColour(new_color)

设置新的字体颜色

四、wx.GetFontFromUser

调用wx.GetFontFromUser全局方法,可以弹出一个字体选择对话框,该方法的函数原型为:

wx.GetFontFromUser(parent, fontInit,caption)

参数:

parent:父窗口

fontInit:初始字体

caption:窗口标题, 默认EmptyString

调用方法:

font = wx.GetFontFromUser(self, wx.NullFont)

上述代码将弹出一个字体选择对话框,当关闭对话框时,将返回一个wx.Font类型的数据值。

五、本文知识点


前一篇:

请关注,评论,收藏,点赞,和转发。

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.