easygui库中参数修改
修改easygui库,实现字体,颜色,背景的改变
问题描述
在使用buttonbox时,发现文字显示太小,还需要加粗,而我是要用来作为显示释义的窗口,见上一帖(小E教你学英语)
而网上说的办法不适用于buttonbox,于是我去找起了源码buttonbox.py,我发现它是使用tkinter写的,之前听小甲鱼说过,这个也是一款gui的工具。
下面是我修改的其中一个地方(By WINTERSTAR)
# self.boxFont = tk_Font.Font(
# family='global_state.PROPORTIONAL_FONT_FAMILY',
# size=global_state.PROPORTIONAL_FONT_SIZE)
# add By WINTERSTAR
self.boxFont = tk_Font.Font(
family='Microsoft YaHei',
size=12,
weight='bold')
# self.boxFont = tk_Font.nametofont("TkFixedFont")
但是改了以后依旧不能用,记录python-tkinter包 Text控件中的更改文字颜色大小操作 在看过链接博客以后,发现是因为这个参数压根没传到后面,只是在一个函数里使用了。因此仿照博客的写法
同时我发现还能改字体 中文字体的英文名称(宋体 微软雅黑)
在buttonbox.py里,发现self.create_msg_widget(msg)所调用的一个函数是对释义区域进行实现的代码:
# Methods to change content ---------------------------------------
def set_msg(self, msg):
self.messageArea.config(state=tk.NORMAL)
self.messageArea.delete(1.0, tk.END)
self.messageArea.insert(tk.END, msg)
self.messageArea.config(state=tk.DISABLED)
self.messageArea.config(font=self.boxFont) #By WINTERSTAR
# Adjust msg height
self.messageArea.update()
numlines = self.get_num_lines(self.messageArea)
self.set_msg_height(numlines)
self.messageArea.update()
添加一行(By WINTERSTAR)以后,发现已经生效了。参考这篇博客,我修改了字体和大小。但是这个窗口的位置还有点不太好。
同样修改位置的代码如下:
self.set_pos(global_state.window_position)
由于我不想修改全局的代码,所以我在下面加了这一行覆盖上面的代码即可(不见得是覆盖,所以上面代码最好别删)
self.set_pos("+10+0")
+10表示离屏幕左边10像素点,+0表示离屏幕上边0像素点
这时候发现这个窗口太长了,要是能宽一点就好了。
然后发现下面有一行
self.boxRoot.minsize(100, 200)
我修改以后,就可以实现窗口的变化,但是并不智能,窗口的内容很少也显示的窗口很大
所以,我就单独把buttonbox以及它相关的库拿出来,然后把上述还原,只为释义窗口做了一个修改。
当然同样也有设置最大尺寸
self.boxRoot.maxsize(1400,600) # add By WINTERSTAR
那么这个easygui默认设置是灰色的,怎么修改颜色呢?使用rgb设置豆沙绿可以采用下面的代码
self.messageArea = tk.Text(
self.boxRoot,
width=self.width_in_chars,
# state=tk.DISABLED, # comment By WINTERSTAR
padx=(global_state.default_hpad_in_chars) *
self.calc_character_width(),
relief="flat",
foreground='black', # add By WINTERSTAR
# background=self.boxRoot.config()["background"][-1], # comment By WINTERSTAR
background= "#%02x%02x%02x" % (128, 192, 200), # add By WINTERSTAR
pady=global_state.default_hpad_in_chars *
self.calc_character_width(),
wrap=tk.WORD,
)
另外,如果想让界面处于可编辑的状态,那么出来要注释上面的DISABLED,还需要下面的DISABLED代码
def set_msg(self, msg):
self.messageArea.config(state=tk.NORMAL)
self.messageArea.delete(1.0, tk.END)
self.messageArea.insert(tk.END, msg)
# self.messageArea.config(state=tk.DISABLED) # comment By WINTERSTAR
self.messageArea.config(font=self.boxFont) # add By WINTERSTAR
# Adjust msg height
self.messageArea.update()
numlines = self.get_num_lines(self.messageArea)
self.set_msg_height(numlines)
self.messageArea.update()
那么配什么文字比较好呢? 可以看看这个人使用的一些文字颜色搭配
本文链接:https://WinterStarHu.github.io/post/easygui-ku-zhong-can-shu-xiu-gai/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!