1、前言
O.O 前两天回家浪了两天,断更了 哎~~~
o.o 有时候,有木有想改标签或编辑框中内容的字体呀?(o.o 反正我是没有)。
wxpython也可以说是所在的操作系统,有字体选择器,给我们使用。
其的样式风格是一定的。o.o 自绘一个也是可以得,比如那些大软件,(o.o 我想我应该不会去这么做)
他的调用方法和步骤都比较简单。
2、方法
一下是一个绑定了菜单项目的一个菜单事件
一般调用这种字体对话框的时候,基本就是上面这样的通用步骤。
1、创建一个 字体选择对话框 对象
2、设置 对话框 中选中的字体
以上 3行代码 可以简化为: self.content.SetFont(dlg.GetFontData().GetChosenFont())
3、板子完事
PS.如果我们在 字体选择对话框中 更改字体颜色, 以下样例不支持。
细心的童鞋坑定注意到了:我们只是设置了字体,并没有去把 data 中的颜色提取出来并进行设置。
o.o 说了是板子,设置字体颜色 相关方法 奉上。
获取 data 中的颜色:
设置 字体颜色:
哈哈 自己去查,完全伸手怎么行。
效果图:
3、样例代码
# coding: utf-8
# author: Twobox
import wx
class MyWin(wx.Frame):
def __init__(self, parent, title):
super(MyWin, self).__init__(parent=parent, title=title)
self.initUI()
self.Centre()
self.Show()
def initUI(self):
"""init Windows UI"""
# init Windows Box
panel = wx.Panel(self)
vbox = wx.BoxSizer(wx.VERTICAL)
self.content = wx.TextCtrl(panel, style=wx.TE_MULTILINE | wx.TE_DONTWRAP)
vbox.Add(self.content, proportion=1, flag=wx.EXPAND | wx.ALL, border=5)
panel.SetSizer(vbox)
# init MenuBar
menuBar = wx.MenuBar()
setMenu = wx.Menu()
fontMenuItem = wx.MenuItem(setMenu, id=11, text="字体(&F)...", kind=wx.ITEM_NORMAL)
setMenu.Append(fontMenuItem)
menuBar.Append(setMenu, title="设置(&S)")
self.SetMenuBar(menuBar)
self.Bind(wx.EVT_MENU, self.eventMenu)
def eventMenu(self, event):
id = event.GetId()
if id == 11:
dlg = wx.FontDialog(self, wx.FontData())
if dlg.ShowModal() == wx.ID_OK:
data = dlg.GetFontData()
Font = data.GetChosenFont()
self.content.SetFont(Font)
dlg.Destroy()
def main():
app = wx.App()
MyWin(None, "FontDialog - Test")
app.MainLoop()
if __name__ == '__main__':
main()
4、后言
一个 板子而已,套着用就可以了。
2017-08-30 00:15:02 -> 2017-08-30 00:37:45
[Python][小知识][NO.2] Python 字符串跨行连接,或拆分为多行显示
1.前言 又是一个字符串很长,但又是一种格式的小字符串直接连接而成的大字符串. 这么我们拆成多行,即美感,又易于我们修改. 例如 文件选择框中的 通配符: wildcard = "Pytho ...
5个有趣的Python小知识,结果令人意外
1 字符串驻留 如果上面例子返回True,但是下面例子为什么是False: 这与Cpython 编译优化相关,行为称为字符串驻留,但驻留的字符串中只包含字母,数字或下划线. 2 相同值的不可变对象 这 ...
python 小知识
PYTHONPATH是Python搜索路径,默认我们import的模块都会从PYTHONPATH里面寻找. 使用下面的代码可以打印PYTHONPATH: print(os.sys.path) impr ...
[Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件
1.安装 pyinstaller 插件 cmd命令:pip install PyInstaller PS . o.o 不知道 easy_install 的百度吧. 2.pyinstaller 简介 他 ...
Python 小知识 杂七杂八 随手记
1.assert 断言语句 例1: print ‘11111111111’ assert 1==2 print ‘22222222’ 如果没有 assert 程序会输出 ‘1111111111 ...
python小知识- webbrowser模块 + join()方法
一.join描述 将序列中的元素以指定的字符连接生成一个新的字符串. 语法 语法: ‘sep’.join(seq) 参数说明: sep:分隔符.可以为空 seq:要连接的元素序列.字符串.元组.字典 ...
python小知识-sys.argv
sys.argv 就是一个从程序外部获取参数的桥梁 1.t1.py import sys a = sys.argv b = len(sys.argv) print(a) print(b) 在pytho ...
随机推荐
Java图形化用户界面(GUI)笔记(一)介绍
一.布局 1.组件 以图形化的方式显示在屏幕上的,和用户进行交互的对象,就叫做组件. 组件包括:菜单.标签.文本框(密码框).滚动条.单选.复选.按钮等等. 2.容器 组件不能独立的显示出来,只能将组 ...
基于LR的数据库性能测试
web services协议 在LR的web services协议中提供了如下函数进行数据库的连接和执行sql语句,以实现对数据库的性能测试,也可以实现向数据库中自动生成批量数据. lr_db_dis ...
adb连接不上手机
昨天电脑重装了系统,今天打开之前的eclips工作环境,点击run as -> android application,一直报各种诡异的错误,总之就是连接不上手机. 其中包括 Adb conne ...
【转】Android 实现“再按一次退出程序”
From:http://blog.csdn.net/ldj299/article/details/7574365 个人觉得当用户按下后退键时,出现"再按一次退出"的提示防止误操作比 ...
如何在WINDOWS下编译BOOST C++库 .
如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25 写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0. 1)下载boost ...
cocos2dx-lua绑定自定义c++类(二)
在 cocos2dx-lua绑定自定义c++类(一)中介绍了如何产生绑定文件. 现在,来看看怎么在工程里使用这个cpp文件.像普通源码文件一样,导入到工程里,看到 LuaTest.h文件里有一个函数入 ...
Android中view的事件
view:top.left.right.bottom,相对于parent的位置参数,获取通过get*()来获取.width=right-left.height=bottom-top.x=left+tr ...
tcpdump使用技巧
tcpdump使用技巧 http://www.veryarm.com/1751.html
推荐几个好的 Maven 常用仓库网址
注意,以下内容转载自:推荐几个好的 Maven 常用仓库网址 Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,4个 ...
Js实现继承的方法
原型的作用:1.将公共部分放入原型中,这样构造出的多个实例对象的公共部分只会占用一个公共空间,实现数据共享和节省内存空间 2.通过原型实现继承:构造函数模拟 "类"这个面向对象的概 ...