Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
天驴滚滚
Tagdox
提交
612c5cce
T
Tagdox
项目概览
天驴滚滚
/
Tagdox
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Tagdox
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
612c5cce
编写于
9月 05, 2021
作者:
H
horsesword
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
代码拆分成多个文件,首先拆分进度条和弹窗类。
上级
fb35b06f
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
229 addition
and
6 deletion
+229
-6
common_funcs.py
common_funcs.py
+9
-0
my_gui_adds.py
my_gui_adds.py
+208
-0
标签文库.py
标签文库.py
+12
-6
未找到文件。
common_funcs.py
0 → 100644
浏览文件 @
612c5cce
def
get_split_path
(
full_path
)
->
list
:
'''
通用函数:
将完整路径按照斜杠拆分,得到每个文件夹到文件名的列表。
'''
test_str
=
full_path
.
replace
(
'
\\
'
,
'/'
,
-
1
)
test_str_res
=
test_str
.
split
(
'/'
)
return
(
test_str_res
)
my_gui_adds.py
0 → 100644
浏览文件 @
612c5cce
import
tkinter
as
tk
from
tkinter
import
ttk
LOGO_PATH
=
'./src/LOGO.ico'
LARGE_FONT
=
10
# 表头字号
MON_FONTSIZE
=
9
# 正文字号
class
my_progress_window
:
'''
一个出现在主窗口中间的进度条
'''
# input_window = '' # =tk.Toplevel(self.form0)
def
__init__
(
self
,
parent
,
prog_value
=
0
,
prog_text
=
''
)
->
None
:
'''
进度条,输入进度数值
'''
# 变量设置
self
.
form0
=
parent
self
.
input_value
=
''
self
.
input_window
=
tk
.
Toplevel
(
self
.
form0
)
print
(
'———————————— 进度条激活 ——————————'
)
self
.
input_window
.
title
(
'进度'
)
self
.
my_prog
=
tk
.
DoubleVar
()
# 进度
self
.
my_text
=
prog_text
self
.
my_prog
.
set
(
prog_value
)
#
# 窗口设置
self
.
input_window
.
overrideredirect
(
True
)
# 这句话可以去掉标题栏,同时也会没有阴影
self
.
w_width
=
800
self
.
w_height
=
100
#
# 屏幕中央:
# self.screenwidth = SCREEN_WIDTH
# self.screenheight = SCREEN_HEIGHT
# self.x_pos = (self.screenwidth - self.w_width) / 2
# self.y_pos = (self.screenheight - self.w_height) / 2
#
# 主窗口中央:
self
.
x_pos
=
self
.
form0
.
winfo_x
()
+
(
self
.
form0
.
winfo_width
()
-
self
.
w_width
)
/
2
self
.
y_pos
=
self
.
form0
.
winfo_y
()
+
(
self
.
form0
.
winfo_height
()
-
self
.
w_height
)
/
2
self
.
input_window
.
geometry
(
'%dx%d+%d+%d'
%
(
self
.
w_width
,
self
.
w_height
,
self
.
x_pos
,
self
.
y_pos
))
# self.input_window.title(self.title)
self
.
input_window
.
transient
(
self
.
form0
)
# 避免在任务栏出现第二个窗口,而且可以实现置顶
self
.
input_window
.
withdraw
()
try
:
self
.
input_window
.
iconbitmap
(
LOGO_PATH
)
# 左上角图标
except
:
pass
self
.
iframe
=
tk
.
Frame
(
self
.
input_window
,
padx
=
20
,
pady
=
20
)
self
.
iframe
.
pack
(
expand
=
0
,
fill
=
tk
.
BOTH
)
# 标签
self
.
pct
=
tk
.
Label
(
self
.
iframe
)
self
.
pct
.
pack
()
# 进度条
self
.
prog_bar
=
ttk
.
Progressbar
(
self
.
iframe
,
variable
=
self
.
my_prog
)
self
.
prog_bar
.
pack
(
expand
=
0
,
fill
=
tk
.
BOTH
)
#
self
.
prog_bar
.
bind
(
'<1>'
,
self
.
force_close
)
def
force_close
(
self
,
event
=
None
):
self
.
input_window
.
destroy
()
def
set
(
self
,
value
):
self
.
progress
=
value
self
.
my_prog
.
set
(
self
.
progress
)
self
.
pct
.
configure
(
text
=
self
.
my_text
+
str
(
int
(
value
))
+
'%'
)
self
.
input_window
.
update
()
# self.pct.update()
# self.prog_bar.update()
if
value
==
0
:
self
.
input_window
.
withdraw
()
elif
value
>
0
:
self
.
input_window
.
deiconify
()
# 置顶
# self.input_window.lift() # 置顶,但是会导致后面失去输入能力
# self.input_window.focus_force()
self
.
input_window
.
grab_set
()
# 模态
if
value
>=
100
:
self
.
input_window
.
withdraw
()
# self.input_window.overrideredirect(False)
self
.
input_window
.
destroy
()
self
.
__destroy__
()
# 自制输入窗体
class
my_input_window
:
'''
输入窗体类。
实现了一个居中的模态窗体。
'''
input_value
=
''
def
__init__
(
self
,
parent
,
title
=
'未命名'
,
msg
=
'未定义'
,
default_value
=
''
,
selection_range
=
None
)
->
None
:
'''
自制输入窗体的初始化;
参数:
selection_range 是默认选中的范围。
'''
# 变量设置
self
.
form0
=
parent
# 父窗格
#
self
.
input_value
=
''
self
.
title
=
title
self
.
msg
=
msg
self
.
default_value
=
default_value
self
.
input_window
=
tk
.
Toplevel
(
self
.
form0
)
#
self
.
input_window
.
transient
(
self
.
form0
)
# 避免在任务栏出现第二个窗口,而且可以实现置顶
self
.
input_window
.
grab_set
()
# 模态
#
# 窗口设置
# self.input_window.overrideredirect(True) # 这句话可以去掉标题栏,同时也会没有阴影
self
.
w_width
=
800
self
.
w_height
=
160
#
# 屏幕中央:
# self.screenwidth = SCREEN_WIDTH
# self.screenheight = SCREEN_HEIGHT
# self.x_pos = (self.screenwidth - self.w_width) / 2
# self.y_pos = (self.screenheight - self.w_height) / 2
#
# 主窗口中央:
self
.
x_pos
=
self
.
form0
.
winfo_x
()
+
(
self
.
form0
.
winfo_width
()
-
self
.
w_width
)
/
2
self
.
y_pos
=
self
.
form0
.
winfo_y
()
+
(
self
.
form0
.
winfo_height
()
-
self
.
w_height
)
/
2
self
.
input_window
.
geometry
(
'%dx%d+%d+%d'
%
(
self
.
w_width
,
self
.
w_height
,
self
.
x_pos
,
self
.
y_pos
))
self
.
input_window
.
title
(
self
.
title
)
#
try
:
self
.
input_window
.
iconbitmap
(
LOGO_PATH
)
# 左上角图标
except
:
pass
self
.
iframe
=
tk
.
Frame
(
self
.
input_window
,
padx
=
20
,
pady
=
10
)
self
.
iframe
.
pack
(
expand
=
0
,
fill
=
tk
.
BOTH
)
# 文本框
self
.
lb
=
tk
.
Label
(
self
.
iframe
,
text
=
self
.
msg
,
font
=
"微软雅黑 "
+
str
(
MON_FONTSIZE
))
self
.
lb
.
pack
(
anchor
=
'sw'
,
pady
=
5
)
self
.
input_window
.
update
()
# 输入框
self
.
et
=
tk
.
Entry
(
self
.
iframe
,
font
=
"微软雅黑 "
+
str
(
MON_FONTSIZE
))
self
.
et
.
insert
(
0
,
self
.
default_value
)
self
.
et
.
pack
(
expand
=
0
,
fill
=
tk
.
X
,
pady
=
5
)
# self.et.selection_range(0, len(self.et.get()))
if
selection_range
is
None
:
self
.
et
.
selection_range
(
0
,
len
(
self
.
et
.
get
()))
else
:
self
.
et
.
selection_range
(
0
,
selection_range
)
self
.
et
.
focus
()
# 获得焦点
# self.et.focus()
# 键盘快捷键
self
.
input_window
.
bind_all
(
'<Return>'
,
self
.
bt_yes_click
)
self
.
input_window
.
bind_all
(
'<Escape>'
,
self
.
bt_cancel_click
)
self
.
iframe_bt
=
tk
.
Frame
(
self
.
input_window
,
padx
=
10
,
pady
=
10
)
self
.
iframe_bt
.
pack
()
# self.iframe_bt.pack(expand=0,fill=tk.BOTH)
# 按钮
self
.
bty
=
ttk
.
Button
(
self
.
iframe_bt
,
text
=
'确定'
,
command
=
self
.
bt_yes_click
)
self
.
bty
.
pack
(
side
=
tk
.
LEFT
,
padx
=
20
)
self
.
btc
=
ttk
.
Button
(
self
.
iframe_bt
,
text
=
'取消'
,
command
=
self
.
bt_cancel_click
)
self
.
btc
.
pack
(
side
=
tk
.
LEFT
,
padx
=
20
)
self
.
input_window
.
deiconify
()
self
.
input_window
.
lift
()
self
.
input_window
.
focus_force
()
self
.
form0
.
wait_window
(
self
.
input_window
)
# 要用这句话拦截主窗体的代码运行
def
bt_cancel_click
(
self
,
event
=
None
):
self
.
input_window
.
unbind_all
(
'<Return>'
)
self
.
input_window
.
unbind_all
(
'<Escape>'
)
self
.
input_window
.
destroy
()
def
bt_yes_click
(
self
,
event
=
None
)
->
str
:
self
.
input_window
.
unbind_all
(
'<Return>'
)
self
.
input_window
.
unbind_all
(
'<Escape>'
)
try
:
self
.
input_value
=
self
.
et
.
get
()
#
except
Exception
as
e
:
print
(
e
)
# print(self.input_value)
self
.
input_window
.
destroy
()
return
self
.
input_value
def
__str__
(
self
)
->
str
:
return
self
.
input_value
def
__del__
(
self
)
->
str
:
self
.
input_value
=
''
# self.input_window.destroy()
return
''
标签文库.py
浏览文件 @
612c5cce
...
...
@@ -31,6 +31,9 @@ from win32com.shell import shell,shellcon
import
shutil
import
queue
from
my_gui_adds
import
my_progress_window
,
my_input_window
from
common_funcs
import
*
# import my_logger
# import send2trash # 回收站(目前作废)
...
...
@@ -38,10 +41,12 @@ URL_HELP = 'https://gitee.com/horse_sword/my-local-library' # 帮助的超链
URL_ADV
=
'https://gitee.com/horse_sword/my-local-library/issues'
# 提建议的位置
URL_CHK_UPDATE
=
'https://gitee.com/horse_sword/my-local-library/releases'
# 检查更新的位置
TAR
=
'Tagdox / 标签文库'
# 程序名称
VER
=
'v0.19.0.
4
'
# 版本号
VER
=
'v0.19.0.
5 beta
'
# 版本号
'''
## 近期更新说明
#### v0.19.0.5 2021年9月5日
代码拆分成多个文件,首先拆分进度条和弹窗类。
#### v0.19.0.4 2021年9月5日
修复初始化时定位文件夹错误的bug。
#### v0.19.0.3 2021年9月5日
...
...
@@ -122,7 +127,8 @@ OPT_DEFAULT = {
# %%
#######################################################################
def
get_split_path
(
full_path
)
->
list
:
def
get_split_path_XXX
(
full_path
)
->
list
:
'''
通用函数:
将完整路径按照斜杠拆分,得到每个文件夹到文件名的列表。
...
...
@@ -1072,7 +1078,7 @@ def show_window_info():
# 自制输入窗体
class
my_input_window
:
class
my_input_window
_XXX
:
'''
输入窗体类。
实现了一个居中的模态窗体。
...
...
@@ -1188,16 +1194,16 @@ class my_input_window:
return
''
class
my_progress_window
:
class
my_progress_window
_XXX
:
'''
一个出现在主窗口中间的进度条
#
一个出现在主窗口中间的进度条
'''
# input_window = '' # =tk.Toplevel(self.form0)
def
__init__
(
self
,
parent
,
prog_value
=
0
,
prog_text
=
''
)
->
None
:
'''
进度条,输入进度数值
#
进度条,输入进度数值
'''
# 变量设置
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录