3 Star 0 Fork 0

lzq1357 / Modifying pictures

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
UI.py 4.71 KB
一键复制 编辑 原始数据 按行查看 历史
lzq1357 提交于 2021-08-08 21:54 . PdfFrame优化
import ctypes
from tkinter import *
from PIL import Image, ImageTk
from ImageCanvas import ImageCanvas
import ToolFrame as TF
import OperationFrame as OF
import VariableFrame as VF
import BottomFrame as BF
from DrawFrame import DrawFrame
from FilterFrame import FilterFrame
from GeometryFrame import GeometryFrame
from IconFrame import IconFrame
from VisualFrame import VisualFrame
# from CertificateFrame import CertificateFrame
from SplitFrame import SplitFrame
from PdfFrame import PdfFrame
#定义全局变量 or 常量
#region UI widget
win = None
canvFrm = None
canvas = None
operFrm = None
toolBar = None
varFrms = {}
bottomFrm = None
#endregion UI widget
#region UI size
winSize = {"w":1250, "h":655}
gap = {"h":10, "v":10}
leftWidth = 105
topHeight = 35
rightWidth = 260
bottomHeight = 30
scrollBarWidth = 20
rightFrmPosition = {"x":0, "y":0}
#endregion UI size
#region UI color
#黑色模式
bg = "#758090"
fg = "#f0f0f0"
radioSelectColor = "#8590a0"
#白色模式
# bg = "#e6e6e6"
# fg = "#010101"
# radioSelectColor = "#d6d6d6"
canvasbg = "#ffffff"
#endregion UI color
#region font
# font = ("Times", 12, "bold")
# font = ("Times", 13)
# font = ("华文宋体", 13)
# font = ("华文隶书", 14)
# font = ("微软雅黑字体", 12, "bold")
# font = ("微软雅黑字体", 14)
# font = ("楷体", 13, "bold") #建议
font_big = ("楷体", 18)
font_middle = ("楷体", 16)
font_small = ("楷体", 14)
font = font_small
#endregion font
#region other
bg_img = None
soft_name = "ImageTool"
#endregion other
#region path
viewBmp= '@img\\onePixel.xbm'
logoPath = "img\\logo.jpg"
icoPath = "img\\logo.ico"
canvasImg = "img\\canvas_bg3.png"
# iconPath = "icon\\"
#endregion path
def initView():
global win, canvFrm, canvas, operFrm, toolBar, varFrms, bg_img, bottomFrm
win = Tk()
beautify(win)
win.geometry("1250x655+0+0")
# win.resizable(0, 0)
win.bind("<Configure>", onSizeChange)
win.title(soft_name)
canvFrm = Frame(win)
canv = ImageCanvas(canvFrm)
canvas = canv
varFrms["绘制图形"] = DrawFrame(canv, win)
varFrms["添加滤镜"] = FilterFrame(canv, win)
varFrms["旋转剪切"] = GeometryFrame(canv, win)
varFrms["添加图标"] = IconFrame(canv, win)
varFrms["视觉效果"] = VisualFrame(canv, win)
# varFrms["证件照"] = CertificateFrame(canv, win)
varFrms["背景替换"] = SplitFrame(canv, win)
varFrms["PDF转图片"] = PdfFrame(canv, win)
operFrm = OF.OperationFrame(canv, win)
operFrm.place(x=0, y=0)
operFrm.replace(varFrms["背景替换"])
toolBar = TF.ToolFrame(canv, win)
toolBar.place(x=operFrm["width"], y=0)
canv.pack(side=LEFT, expand=True, fill=BOTH)
canvFrm.place(x=operFrm["width"] + 15, y=toolBar["height"] + 10)
bottomFrm = BF.BottomFrame(canv, win)
bottomFrm.place(x=operFrm["width"], y=winSize["h"] - bottomHeight)
# win_w, win_h = win.maxsize()
# win.geometry("{}x{}+0+0".format(win_w, win_h))
win.wm_state('zoomed')
# bg_img = ImageTk.PhotoImage(Image.open(canvasImg))
# canv.create_image((0, 0), image=bg_img, anchor="nw")
win.geometry("{}x{}+0+0".format(winSize["w"], winSize["h"]))
win.iconbitmap(icoPath)
pass
def onSizeChange(event):
if isinstance(event.widget, Tk):
resize(event.width, event.height)
pass
def resize(width, height):
winSize["w"] = width
winSize["h"] = height
operFrm.configure(height=winSize["h"])
toolBar.configure(width=winSize["w"])
rightFrmPosition["x"] = winSize["w"] - rightWidth
rightFrmPosition["y"] = topHeight + gap["v"]
for key in varFrms:
varFrms[key].configure(height=winSize["h"]-topHeight-gap["v"])
varFrms[key].onSizeChanged(rightWidth, winSize["h"]-topHeight-gap["v"])
if operFrm.varFrm is not None:
operFrm.varFrm.place(x=rightFrmPosition["x"], y=rightFrmPosition["y"])
canvas.configure(width=winSize["w"]-leftWidth-rightWidth-2*gap["h"]-scrollBarWidth,
height=winSize["h"]-topHeight-bottomHeight-2*gap["v"]-scrollBarWidth)
varFrms["添加图标"].iconCanvas.configure(height=winSize["h"]-topHeight-gap["v"])
bottomFrm.configure(width=winSize["w"]-leftWidth-rightWidth,
height=bottomHeight)
bottomFrm.place(x=operFrm["width"], y=winSize["h"]-bottomHeight)
pass
def beautify(win):
"""
设置窗口分辨率,避免模糊
"""
global font
ctypes.windll.shcore.SetProcessDpiAwareness(1)
ScaleFactor = ctypes.windll.shcore.GetScaleFactorForDevice(0)
# win.tk.call('tk', 'scaling', ScaleFactor / 75)
win.tk.call('tk', 'scaling', ScaleFactor/100)
if ScaleFactor > 100:
font = font_small
elif ScaleFactor == 100:
font = font_middle
else:
font = font_big
pass
Python
1
https://gitee.com/lzq1357/Modifying-pictures.git
git@gitee.com:lzq1357/Modifying-pictures.git
lzq1357
Modifying-pictures
Modifying pictures
master

搜索帮助