|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 txxcat 于 2022-4-25 15:32 编辑
easygui最新版本0.98.3,小甲鱼的视频中提到的修改easygui字体的方法仅对老版本的easygui,对现在的版本已经失效,进去到easygui里已经找不到相关的代码可以改动了,所以很多人认为easygui现在是不能修改字体的。
但其实完全可以自己来进行修改,并且按自己的需要进行一些微调,下面就以choicebox来举例,没修改前,choicebox是这样的:
还有多选择窗口:
那么我们希望作以下改进:
1.把按钮文字改为中文;
2.按我们的习惯改变一下按钮的顺序;
3.改变一下显示的字体;
首先,要找到需要修改的文件,熟悉python文件结构的人很好找到,不熟悉的按图索骥吧,easygui目录下的box目录的choice_box.py就是需要修改的文件,记得修改前备份一下:
打开choice_box.py,找到create_ok_button方法:
- okButton = tk.Button(self.buttonsFrame, takefocus=tk.YES,
- text="OK", height=1, width=6)
复制代码
text的内容就是修改按钮的文字,改成需要的,然后加入字体设置,如下:
- okButton = tk.Button(self.buttonsFrame, takefocus=tk.YES,
- text="确认", height=1, width=6,font=('微软雅黑',12))
复制代码
然后是修改按钮位置:
- okButton.pack(expand=tk.NO, side=tk.RIGHT, padx='2m', pady='1m',
- ipady="1m", ipadx="2m")
复制代码
side是表示左右,我们一般习惯确认键在左边,那就修改成左边:
- okButton.pack(expand=tk.NO, side=tk.LEFT, padx='2m', pady='1m',
- ipady="1m", ipadx="2m")
复制代码
然后修改create_cancel_button、create_special_buttons(这个是多选窗口用的)。
完成按钮文字、字体和位置的修改后,再修改显示信息文本create_msg_widget和列表create_choicearea的字体,主要就是加上font:
- #create_msg_widget
- self.messageArea = tk.Text(
- self.msgFrame,
- width=self.width_in_chars,
- state=tk.DISABLED,
- background=self.boxRoot.config()["background"][-1],
- relief='flat',
- padx=(global_state.default_hpad_in_chars *
- self.calc_character_width()),
- pady=(global_state.default_hpad_in_chars *
- self.calc_character_width()),
- wrap=tk.WORD,
- font=('微软雅黑')
- #create_choicearea
- self.choiceboxWidget = tk.Listbox(self.choiceboxFrame,
- height=lines_to_show,
- borderwidth="1m", relief="flat",
- bg="white",
- font=('微软雅黑',12)
- )
复制代码
完成后保存,运行效果如下:
多选择窗口:
其他的窗口模块,除了文件目录那几个模块无法从easygui的代码进行修改以外,都可以用类似的方法进行修改,因为涉及修改的地方比较多,所以这里不一一说明,直接把已经修改好的代码打包,大家可以下载研究一下,覆盖原来的py文件就可以了,记得覆盖前备份一下。
特别说明:
修复了choicebox在Python3.10运行会导致"AttributeError: module 'collections' has no attribute 'Sequence'"的问题。
修复了几个无伤大雅的bug,平时使用一般不会触发,只在egdemo里会触发。
textbox()中显示中文文本如果需要换行,会删除行首的空格,有时候真不爽,这是因为源代码换行是以word为单位,英文没问题,汉字就不妙了,改成char就OK了,再有默认显示行数25行,有时候太多了,所以增加了一个参数:showlines来指定显示行数,默认值还是25。例如:
- g.textbox(msg=msg, title=title, text=text, showlines=15)
复制代码
效果如下:
easygui汉化包:
easygui_0.98.3_boxes_HZ.zip
(25.46 KB, 下载次数: 33)
|
|