鱼C论坛

 找回密码
 立即注册
查看: 4897|回复: 5

[技术交流] easygui如何按自己的需要进行定制(附0.98.3汉化包,3.10可用)

[复制链接]
发表于 2020-6-12 16:22:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 txxcat 于 2022-4-25 15:32 编辑

    easygui最新版本0.98.3,小甲鱼的视频中提到的修改easygui字体的方法仅对老版本的easygui,对现在的版本已经失效,进去到easygui里已经找不到相关的代码可以改动了,所以很多人认为easygui现在是不能修改字体的。
    但其实完全可以自己来进行修改,并且按自己的需要进行一些微调,下面就以choicebox来举例,没修改前,choicebox是这样的:
批注 2020-06-12 151601.png
   还有多选择窗口:
批注 2020-06-12 151630.png
    那么我们希望作以下改进:
    1.把按钮文字改为中文;
    2.按我们的习惯改变一下按钮的顺序;
    3.改变一下显示的字体;
    首先,要找到需要修改的文件,熟悉python文件结构的人很好找到,不熟悉的按图索骥吧,easygui目录下的box目录的choice_box.py就是需要修改的文件,记得修改前备份一下:
批注 2020-06-12 154442.png
    打开choice_box.py,找到create_ok_button方法:
  1.         okButton = tk.Button(self.buttonsFrame, takefocus=tk.YES,
  2.                              text="OK", height=1, width=6)
复制代码

    text的内容就是修改按钮的文字,改成需要的,然后加入字体设置,如下:
  1.         okButton = tk.Button(self.buttonsFrame, takefocus=tk.YES,
  2.                              text="确认", height=1, width=6,font=('微软雅黑',12))
复制代码

    然后是修改按钮位置:
  1.         okButton.pack(expand=tk.NO, side=tk.RIGHT, padx='2m', pady='1m',
  2.                       ipady="1m", ipadx="2m")
复制代码

    side是表示左右,我们一般习惯确认键在左边,那就修改成左边:
  1.         okButton.pack(expand=tk.NO, side=tk.LEFT, padx='2m', pady='1m',
  2.                       ipady="1m", ipadx="2m")
复制代码

    然后修改create_cancel_button、create_special_buttons(这个是多选窗口用的)。
    完成按钮文字、字体和位置的修改后,再修改显示信息文本create_msg_widget和列表create_choicearea的字体,主要就是加上font:
  1. #create_msg_widget
  2.         self.messageArea = tk.Text(
  3.             self.msgFrame,
  4.             width=self.width_in_chars,
  5.             state=tk.DISABLED,
  6.             background=self.boxRoot.config()["background"][-1],
  7.             relief='flat',
  8.             padx=(global_state.default_hpad_in_chars *
  9.                   self.calc_character_width()),
  10.             pady=(global_state.default_hpad_in_chars *
  11.                   self.calc_character_width()),
  12.             wrap=tk.WORD,
  13.             font=('微软雅黑')
  14. #create_choicearea
  15.         self.choiceboxWidget = tk.Listbox(self.choiceboxFrame,
  16.                                           height=lines_to_show,
  17.                                           borderwidth="1m", relief="flat",
  18.                                           bg="white",
  19.                                           font=('微软雅黑',12)
  20.                                           )
复制代码

    完成后保存,运行效果如下:
批注 2020-06-12 151907.png
    多选择窗口:
批注 2020-06-12 151940.png
    其他的窗口模块,除了文件目录那几个模块无法从easygui的代码进行修改以外,都可以用类似的方法进行修改,因为涉及修改的地方比较多,所以这里不一一说明,直接把已经修改好的代码打包,大家可以下载研究一下,覆盖原来的py文件就可以了,记得覆盖前备份一下。
    特别说明
    修复了choicebox在Python3.10运行会导致"AttributeError: module 'collections' has no attribute 'Sequence'"的问题。
    修复了几个无伤大雅的bug,平时使用一般不会触发,只在egdemo里会触发。
    textbox()中显示中文文本如果需要换行,会删除行首的空格,有时候真不爽,这是因为源代码换行是以word为单位,英文没问题,汉字就不妙了,改成char就OK了,再有默认显示行数25行,有时候太多了,所以增加了一个参数:showlines来指定显示行数,默认值还是25。例如:
  1. g.textbox(msg=msg, title=title, text=text, showlines=15)
复制代码

    效果如下:
批注 2020-06-17 230303.png
easygui汉化包:   
easygui_0.98.3_boxes_HZ.zip (25.46 KB, 下载次数: 26)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-11-8 22:16:05 | 显示全部楼层
谢谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-17 21:26:56 | 显示全部楼层
谢谢楼主分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-5-2 15:02:01 | 显示全部楼层
顶上去让更多萌新看到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-9-12 23:27:24 | 显示全部楼层
这个好,正在苦恼呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-6-5 22:16:05 From FishC Mobile | 显示全部楼层
谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 17:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表