参考链接

  • https://www.bookstack.cn/read/Python-One-to-Million/console-gooey.md
  • https://github.com/chriskiehl/GooeyExamples

控件

两个简单的控件:FileChooserDateChooser,分别提供了一个“文件选择器”和
“日期选择器”。现在支持的 chooser 类控件有:

控件名 控件类型
FileChooser 文件选择器
MultiFileChooser 文件多选器
DirChooser 目录选择器
MultiDirChooser 目录多选器
FileSaver 文件保存
DateChooser 日期选择
TextField 文本输入框
Dropdown 下拉列表
Counter 计数器
CheckBox 复选框
RadioGroup 单选框

配置

language 参数配置一样,Gooey 还支持很多其它配置,下面是它支持的参数列表:

参数 简介
advanced 切换显示全部设置还是仅仅是简化版本
show_config Skips the configuration all together and runs the program immediately
language 指定从 gooey/languages 目录读取哪个语言包
program_name GUI 窗口显示的程序名。默认会显 sys.argv[0]
program_description Settings 窗口顶栏显示的描述性文字。默认值从 ArgumentParser 中获取。
default_size 窗口默认大小。
required_cols 设置必选参数行数。
optional_cols 设置可选参数行数。
dump_build_config 将设置以 JSON 格式保存在硬盘中以供编辑/重用。

布局流

布局实例可以在下载这个 exmaple 库体验

代码示例

  • 别的先不说,直接上代码
# coding: utf-8
import sys
import os
import time
import math
import numpy as np
import random
from ctypes import *
from time import sleepfrom gooey import Gooey, GooeyParsercmd_path = os.path.split(os.path.realpath(__file__))[0].replace("\\", "/")embed_lib = cmd_path + '/img_embed_api.dll'
embed_sdk = CDLL(embed_lib)img_ext_list = ['.jpg', '.png','.PNG', '.tiff' ,'.tif', '.JPG','.jpeg','.JPEG','.bmp','.BMP','.jfif']def embedding(uuid, num_marco, source_path, dest_dir_path, log_path):embed_sdk.imgWatermarkEmbedApi.argtypes = [c_char_p, c_char_p, c_char_p, c_int]embed_sdk.imgWatermarkEmbedApi.restype = c_intf1 = open(log_path, "w")for item in os.listdir(source_path):full_item_path = os.path.join(source_path, item)ext_name = os.path.splitext(full_item_path)[1]if ext_name in img_ext_list:dest_path = os.path.join(dest_dir_path, "wm_"+item)start_s = time.time()arg1 = c_char_p(uuid.encode('utf-8'))arg2 = c_char_p(full_item_path.encode('gbk'))arg3 = c_char_p(dest_path.encode('gbk'))ret_value = embed_sdk.imgWatermarkEmbedApi(arg1, arg2, arg3, num_marco)end_s = time.time()print("\n return code is %d, cost time is %0.3ss\n"%(ret_value, end_s - start_s))sys.stdout.flush()sleep(0.1)f1.write('%s'%(full_item_path) + '\t'+ str(ret_value) + "\n")f1.close()@Gooey(language='chinese',dump_build_config = False,program_name = u'嵌入测试工具(内部工具请勿外泄)',richtext_controls = True,required_cols = 2,optional_cols = 2,default_size=(760, 840),menu=[{'name': '菜单','items': [{'type': 'AboutDialog','menuTitle': '关于','name': '水印嵌入及提取测试工具','description': 'Copyright © xxxx技术有限公司','version': 'v1.0.0','website': 'https://www.xxxx.cn'}]}])def main():# parser = GooeyParser(description="嵌入提取demo")default_dir = os.path.dirname(os.getcwd())parser = GooeyParser()parser.add_argument('appid', metavar='appid',default = "11110001", help="编码方案参数,用于提取阶段")parser.add_argument('Blocks', metavar='xxxx', type = int, default = 15, help="水印块参数")parser.add_argument('uuid', metavar='uuid', default = "xxxx", help="用于xxx阶段")parser.add_argument('emded_source_path', widget="DirChooser",  default = default_dir, help="待嵌入输入图片目录")parser.add_argument('emded_output_path', widget="DirChooser", default = default_dir, help="水印嵌入后输出目录")parser.add_argument("-Extract","--Extracting_whole", dest="full_Extract",\action="store_true", help="完整水印图片提取") parser.add_argument("-Extract_Crop","--Extract_Croping", dest="crop_extract",\action="store_true", help="裁剪水印图片提取") parser.add_argument('-extract_full_dir', widget = "DirChooser", default="../xxx",  help="完整水印图片的目录")parser.add_argument('-source_reference_path', widget = "FileChooser", default="./xxx.jpg",  help="原图片路径")parser.add_argument('-extract_full_img_path', widget = "FileChooser", default="../xxx.jpg",  help="无裁剪水印的图片路径")parser.add_argument('-test_crop_image_path', widget = "FileChooser", default="./xxx.jpg",  help="裁剪后待检测水印图路径")parser.add_argument('-test_crop_image_dir', widget = "DirChooser", default="test_crop_dir",  help="裁剪的待检测水印图的目录")args = parser.parse_args()if not os.path.exists(args.emded_output_path):os.makedirs(args.emded_output_path)if not args.full_Extract and not args.crop_extract:print("\n......start embedding ......\n")if not os.path.exists(args.emded_source_path):print("\n input embed dir %s not found\n"%args.emded_source_path)return 0log_path = os.path.join(args.emded_output_path, "log_embed.txt")embedding(args.uuid, args.Blocks, args.emded_source_path, args.emded_output_path, log_path)print("\n......embedding done......\n")if __name__ == "__main__":sys.exit(main())

python搭建GUI第三方库gooey入门相关推荐

  1. python基础和第三方库 笔记(python基础完结包括高级用法,第三方库持续更新中...)

    python基础 注:本笔记面向有一定基础的人 本笔记是本人快速复习python过程中记录的,不适合零基础的人学习python的主工具,可以作为辅工具,本笔记记录了入门阶段常用操作,如有错误的地方,希 ...

  2. Python pip安装第三方库的国内镜像

    Python pip 安装第三方库的国内镜像 Windows系统下,一般情况下使用pip在DOS界面安装python第三方库时,经常会遇到超时的问题,导致第三方库无法顺利安装,此时就需要国内镜像源的帮 ...

  3. python安装第三方包总是超时_(python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.')...

    (python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.') pip工具安装 百度经验链接: pip ...

  4. python pip安装第三方库老是报错_#python pip 安装dlib一直失败?#python安装dlib错误...

    #python pip 安装dlib一直失败?#python安装dlib错误 python dlib 教程2020-10-11 07:52:36人已围观 ubuntu里面怎么安装dlib 下面是在ub ...

  5. python离线安装第三方库

    python离线安装第三方库 本人也是一枚小白,欢迎大佬们批评指正! 当服务器是未联网状态时,在环境中安装第三方包就很不方便.下面是自己学习过多篇文章后,结合自己实际安装步骤,写的一点总结. 1. 在 ...

  6. 【Python软件和第三方库国内地址】

    Python软件和第三方库国内地址 提示:国外地址下载半天,总失败 文章目录 Python软件和第三方库国内地址 前言 一.安装Python 1.[国内华为镜像](https://mirrors.hu ...

  7. 吐血整理——python常用的第三方库——库名称简介

    python常用的第三方库--库名称简介(一) python常用的第三方库--库名称简介(一) python常用的第三方库--库名称简介(一) 库名称简介 文件处理 库名称简介 Chardet字符编码 ...

  8. Python 图像处理 PIL 第三方库详细使用教程(更新中)

    Pillow 库 基本概述 Python Pillow PIL 库的用法介绍,Pillow库是一个Python的第三方库. 要点:PIL库是一个具有强大图像处理能力的第三方库,不仅包含了丰富的像素.色 ...

  9. 使用Python的moviepy第三方库剪辑视频

    使用Python的moviepy第三方库剪辑视频 文章目录 使用Python的moviepy第三方库剪辑视频 前言 一.使用环境 二.使用步骤 1.安装moviepy 2.引入库 3.完整代码 三.错 ...

最新文章

  1. 任正非:要感谢特朗普,他一吓唬,治好了华为人的富裕病,都努力工作了
  2. 从AppStore提取ipa
  3. Matlab使用技巧:Rapid Code Iteration Using Cells in the Editor
  4. linux 设备驱动 百度,Linux设备驱动之input子系统
  5. 二叉树实现java,二叉树实现java
  6. ecshop清除mysql缓存_禁用ecshop缓存,关闭ecshop缓存功能
  7. Google Drive的linux客户端使用(还没弄完)
  8. 信息学奥赛一本通(1128:图像模糊处理)
  9. 局域网内数据采集总结(三)
  10. Django学习--form(表单)
  11. 高德地图上展示终端信息
  12. 构造c语言的上下文无关文法,正则文法和上下文无关文法
  13. 【keil5】pwm驱动步进电机
  14. 第十五届全国大学生智能车山东赛区最终奖项
  15. file_get_contents
  16. 上海远丰:打破双11魔咒,让企业电商两条腿走路
  17. 在Markdown编辑器中输入上标下标
  18. pg中多值列_PostgreSQL中列的statistics属性
  19. CPU占用过高问题的排查及解决
  20. 英方股份挂牌“新三板” :布局产业生态 深拓多种业务

热门文章

  1. 惹怒程序员的下场!阿里达摩院大神受不了骚扰电话,业余发起“二哈”AI,315后爆红
  2. BUUCTF:穿越时空的思念
  3. Stata:异方差和自相关稳健F检验和t检验
  4. normalized
  5. 运算放大器 之 差分放大电路
  6. 网络基础知识-192.168.0.1/24是什么意思?
  7. 小孩从小就学习编程,真的有必要吗?
  8. 从一路高歌到遭多国“封杀”,ChatGPT未来将是什么样子?
  9. edusoho 二次开发
  10. 地理信息系统导论第八版_清华大学出版社-图书详情-《地理信息系统导论(第3版)》...