Python-GUI-颜色选择器

2018-09-19  本文已影响208人  一个厨子

最终效果:

点击复制颜色代码

点击颜色,即可复制颜色代码,然后在需要的地方直接 control + v 粘贴。


1. 首先获取需要的颜色

我展示的颜色源自 Google Material Colors (得翻墙咯)

链接: https://material.io/design/color/the-color-system.html#tools-for-picking-colors

颜色很多,咋办呢,一个个复制?No!毕竟我那么懒。

所以获取网页源码,然后用xPath取出来就好辣。

从HTML文件中提取颜色代码

html 是lxml中的。

from lxml import html 

之后,把颜色写入文件备用,取色过程就结束了。

2. 将颜色绘制出来

这就涉及到Python GUI的知识了,这里我使用的是 tkinter

form tkinter import *

首先配置一下主窗口和画布

初始化窗口和画布

关于 Tk()

Toplevel widget of Tk which represents mostly the main window of an application.

It has an associated Tcl interpreter.

大意就是:窗口。 :)

另外要显示出来,需要加上

root.mainloop()

... 画布尺寸写死了,每一格的大小也写死了 ...

画格子:

绘制颜色格子

各种乘法是计算格子的位置。

create_rectangle 方法中有两个参数 fill=colortag=color

color 是当前的颜色
fill=color 表示用此颜色填充方格
tag=color 设置一个Tag,值就是颜色代码。目的是为了传递颜色代码,供点击时使用。

tag_bind() 这个方法是用来实现点击事件,selectColor 就是点击时调用的方法。

点击

root.clipboard_clear() 清空剪贴板(Tk的)
root.clipboard_append(cell_color) 将颜色代码加入剪贴板

到此,功能便完成了,挺简单也挺实用的小工具,方便自己选颜色。

3. 将Python脚本转换为可执行的.app文件 (Mac)

使用 py2app 将Python脚本转为 .app应用

脚本名为:ColorGrid.py ,打开Terminal

1)安装py2app

pip install py2app

2)创建 setup.py 文件

py2applet --make-setup ColorGrid.py

在setup.py中,OPTIONS = {} 中填入 'argv_emulation': True

如果有使用其他的数据文件,要在 DATA_FILES = [] 中填入。

本例中使用了一个文件(color_list.txt)来读写颜色。所以如图:

setup.py

3)测一测

python3 setup.py py2app -A

-A 表示 alias mode,简单的理解就是测试,这个并没有生成一个独立的可运行文件,而是依赖了本机的环境。

此命令后会生成 build/ ,dist/ 两个文件夹。

运行一下:

open ./dist/ColorGrid.app/Contents/MacOS/ColorGrid  

或者

open -a dist/ColorGrid.app

看看运行是否成功,不成功的话,可以

open -a Console

开打Console,看看错误信息。 (虽然我是看不大懂 :(

4)正式打包

其实就是不加 -A。 :)

python3 setup.py py2app

记得要先删除 build/ 和 dist/

rm -rf build dist

然后在生成的 dist/ 文件夹下,双击 ColorGrid.app 即可运行。

这已经是一个独立的应用,所以可以把它发给你的朋友们使用了。

小插曲:

在使用 py2app 转换Python脚本的时候,生成的 .app 一直运行不起来。

最后找到这个回答

Link:https://stackoverflow.com/questions/45493029/valueerror-character-u6573552f-py2aap

说是 py2app 0.14 的问题,换成 0.13 就好了。

而此时(2018/9/17)最新版本为 0.17 ,于是我从0.17往下尝试一直到 0.13 ,才成功。 :(

I don't know why ? ??

# 指定安装版本
pip install py2app==0.13

项目源码

上一篇 下一篇

猜你喜欢

热点阅读