python搭建GUI第三方库gooey入门
参考链接
- https://www.bookstack.cn/read/Python-One-to-Million/console-gooey.md
- https://github.com/chriskiehl/GooeyExamples
控件
两个简单的控件:FileChooser
和 DateChooser
,分别提供了一个“文件选择器”和
“日期选择器”。现在支持的 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入门相关推荐
- python基础和第三方库 笔记(python基础完结包括高级用法,第三方库持续更新中...)
python基础 注:本笔记面向有一定基础的人 本笔记是本人快速复习python过程中记录的,不适合零基础的人学习python的主工具,可以作为辅工具,本笔记记录了入门阶段常用操作,如有错误的地方,希 ...
- Python pip安装第三方库的国内镜像
Python pip 安装第三方库的国内镜像 Windows系统下,一般情况下使用pip在DOS界面安装python第三方库时,经常会遇到超时的问题,导致第三方库无法顺利安装,此时就需要国内镜像源的帮 ...
- python安装第三方包总是超时_(python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.')...
(python pip安装第三方库超时问题(raise ReadTimeoutErrorself._pool, None, 'Read timed out.') pip工具安装 百度经验链接: pip ...
- python pip安装第三方库老是报错_#python pip 安装dlib一直失败?#python安装dlib错误...
#python pip 安装dlib一直失败?#python安装dlib错误 python dlib 教程2020-10-11 07:52:36人已围观 ubuntu里面怎么安装dlib 下面是在ub ...
- python离线安装第三方库
python离线安装第三方库 本人也是一枚小白,欢迎大佬们批评指正! 当服务器是未联网状态时,在环境中安装第三方包就很不方便.下面是自己学习过多篇文章后,结合自己实际安装步骤,写的一点总结. 1. 在 ...
- 【Python软件和第三方库国内地址】
Python软件和第三方库国内地址 提示:国外地址下载半天,总失败 文章目录 Python软件和第三方库国内地址 前言 一.安装Python 1.[国内华为镜像](https://mirrors.hu ...
- 吐血整理——python常用的第三方库——库名称简介
python常用的第三方库--库名称简介(一) python常用的第三方库--库名称简介(一) python常用的第三方库--库名称简介(一) 库名称简介 文件处理 库名称简介 Chardet字符编码 ...
- Python 图像处理 PIL 第三方库详细使用教程(更新中)
Pillow 库 基本概述 Python Pillow PIL 库的用法介绍,Pillow库是一个Python的第三方库. 要点:PIL库是一个具有强大图像处理能力的第三方库,不仅包含了丰富的像素.色 ...
- 使用Python的moviepy第三方库剪辑视频
使用Python的moviepy第三方库剪辑视频 文章目录 使用Python的moviepy第三方库剪辑视频 前言 一.使用环境 二.使用步骤 1.安装moviepy 2.引入库 3.完整代码 三.错 ...
最新文章
- 任正非:要感谢特朗普,他一吓唬,治好了华为人的富裕病,都努力工作了
- 从AppStore提取ipa
- Matlab使用技巧:Rapid Code Iteration Using Cells in the Editor
- linux 设备驱动 百度,Linux设备驱动之input子系统
- 二叉树实现java,二叉树实现java
- ecshop清除mysql缓存_禁用ecshop缓存,关闭ecshop缓存功能
- Google Drive的linux客户端使用(还没弄完)
- 信息学奥赛一本通(1128:图像模糊处理)
- 局域网内数据采集总结(三)
- Django学习--form(表单)
- 高德地图上展示终端信息
- 构造c语言的上下文无关文法,正则文法和上下文无关文法
- 【keil5】pwm驱动步进电机
- 第十五届全国大学生智能车山东赛区最终奖项
- file_get_contents
- 上海远丰:打破双11魔咒,让企业电商两条腿走路
- 在Markdown编辑器中输入上标下标
- pg中多值列_PostgreSQL中列的statistics属性
- CPU占用过高问题的排查及解决
- 英方股份挂牌“新三板” :布局产业生态 深拓多种业务
热门文章
- 惹怒程序员的下场!阿里达摩院大神受不了骚扰电话,业余发起“二哈”AI,315后爆红
- BUUCTF:穿越时空的思念
- Stata:异方差和自相关稳健F检验和t检验
- normalized
- 运算放大器 之 差分放大电路
- 网络基础知识-192.168.0.1/24是什么意思?
- 小孩从小就学习编程,真的有必要吗?
- 从一路高歌到遭多国“封杀”,ChatGPT未来将是什么样子?
- edusoho 二次开发
- 地理信息系统导论第八版_清华大学出版社-图书详情-《地理信息系统导论(第3版)》...