无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: piaomusic
打印 上一主题 下一主题

[原创] 我的工具箱(含源码) v2025.07.14

    [复制链接]
181#
发表于 2025-7-6 16:43:01 | 只看该作者
回复

使用道具 举报

182#
发表于 2025-7-6 16:48:56 | 只看该作者
感谢分享!
回复

使用道具 举报

183#
发表于 2025-7-6 16:57:23 | 只看该作者
新版出更,感谢分享!
回复

使用道具 举报

184#
发表于 2025-7-6 17:08:27 | 只看该作者
支持支持
回复

使用道具 举报

185#
发表于 2025-7-6 17:41:27 | 只看该作者
谢谢分享
回复

使用道具 举报

186#
发表于 2025-7-6 17:52:32 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

187#
发表于 2025-7-6 20:00:48 | 只看该作者
太好了。谢谢大师
回复

使用道具 举报

188#
发表于 2025-7-6 20:11:55 | 只看该作者
感谢分享
回复

使用道具 举报

189#
发表于 2025-7-6 20:30:16 | 只看该作者
回家测试了一下最新的mytools01和mytools02,在4K下主界面文字适配了高分辨率,但界面设置里除了“保存”和“取消”按钮外,其余文字都很小。最严重的问题是,窗口宽度和高度更改无效(默认1400和900),默认每行工具数固定为5也不能更改,导致软件显示不全。即便改了,重启还是还原。导航栏宽度默认220太宽,显得字小,140以下合适,字号设置里除了IP外都不能改,布局设置里除了导航栏顶部间距外,其余都更改无效,重启即还原,目前最新版在4k下处于不能用的状态。

点评

更新时间 2025年7月11日 19点 0711 添加配置文件选择功能,方便在不同电脑切换配置文件。配置文件存放目录config  详情 回复 发表于 6 天前
回复

使用道具 举报

190#
发表于 2025-7-6 20:44:17 | 只看该作者
一个不专业的想法:既然导航栏宽度、按钮宽度以及距离等数值是固定的,那是不是也可以把常见几个高分变率下窗口宽度,设置成合适的参数,固定下来不变, 每行软件数也固定下来不变,比如每行2-3个,增加软件时依次往下排列,窗口高度随着软件行数自动适配。
回复

使用道具 举报

191#
 楼主| 发表于 2025-7-6 20:52:28 | 只看该作者
本帖最后由 piaomusic 于 2025-7-6 20:54 编辑
心升明月 发表于 2025-7-6 20:44
一个不专业的想法:既然导航栏宽度、按钮宽度以及距离等数值是固定的,那是不是也可以把常见几个高分变率下 ...

def get_screen_resolution():
    """获取屏幕分辨率并返回分辨率级别"""
    try:
        user32 = ctypes.windll.user32
        width = user32.GetSystemMetrics(0)
        height = user32.GetSystemMetrics(1)
        
        # 根据宽度判断分辨率级别
        if width >= 3840:  # 4K
            return "4k"
        elif width >= 2560:  # 2K
            return "2k"
        elif width >= 1920:  # 1080p
            return "1080p"
        else:  # 低于1080p
            return "low"
    except:
        return "1080p"  # 默认返回1080p

def get_scaling_factor(resolution):
    """根据分辨率返回缩放因子"""
    scaling_factors = {
        "4k": 1.8,
        "2k": 1.4,
        "1080p": 1.0,
        "low": 0.9
    }
    return scaling_factors.get(resolution, 1.0)
   
class ToolboxApp:
    """工具箱主应用程序"""
   
    DEFAULT_CONFIG = {
        '标题栏背景色': '#2E2E2E', '标题栏文字色': '#FFFFFF', '导航栏背景色': '#F0F0F0',
        '内容区背景色': '#FFFFFF', '按钮背景色': '#FFFFFF', '按钮文字色': '#000000',
        '按钮边框色': '#CCCCCC', '按钮激活背景色': '#E0E0E0', '图标文字间距': 5,
        '标题': '我的工具箱', '标题字体': '微软雅黑',
        '导航栏字体': '微软雅黑', '按钮字体': '微软雅黑',
        '导航栏顶部间距': 10, '按钮水平内边距': 15, '按钮垂直内边距': 5
    }

    PROTECTED_METADATA = {
        '作者': '缘起性空', '版本': '3.1.2025.0701', '联系': '32897251@qq.com','说明': '本工具仅供技术交流使用','更新URL': 'https://www.123912.com/s/sj4rVv-PSJVH'
    }

    def __init__(self, master: tk.Tk):
        self.resolution = get_screen_resolution()
        self.scaling_factor = get_scaling_factor(self.resolution)
        self.master = master
        self._set_resolution_based_config()        
        self.base_path = self._get_base_path()
        self._create_required_dirs()
        self._extract_icons()   
        self.config = self.DEFAULT_CONFIG.copy()
        self.tools = {}
        self.icons = {}
        self.running_tools = {}
        self.tool_lock = Lock()
        self.current_section = None
        self.selected_button = None
        self.selected_button_name = None
        self._last_config_mtime = None
        self._toolbox_manager_window = None
        self._initialize_app()
        self._setup_navigation_context_menu()
        self._auto_match_icons()
        
    def _set_resolution_based_config(self):
        """根据分辨率设置默认配置"""
        # 基础值 (1080p)
        base_values = {
            '图标大小': 48,
            '窗口宽度': 900,
            '窗口高度': 600,
            '每行工具数': 3,
            '标题字体大小': 16,
            '导航栏字体大小': 13,
            'IP字体大小': 13,
            '按钮字体大小': 12,
            '标题栏高度': 50,
            '导航栏宽度': 160,
            '导航按钮间距': 5,
            '按钮宽度': 16
        }
        
        # 根据缩放因子调整值
        for key, value in base_values.items():
            if key in ['每行工具数']:  # 这些值不需要缩放
                self.DEFAULT_CONFIG[key] = value
            else:
                self.DEFAULT_CONFIG[key] = int(value * self.scaling_factor)
               
        # 特殊调整
        if self.resolution == "4k":
            self.DEFAULT_CONFIG['每行工具数'] = 5
            self.DEFAULT_CONFIG['导航栏宽度'] = 200
        elif self.resolution == "2k":
            self.DEFAULT_CONFIG['每行工具数'] = 4
            self.DEFAULT_CONFIG['导航栏宽度'] = 180
        elif self.resolution == "low":
            self.DEFAULT_CONFIG['每行工具数'] = 2
            self.DEFAULT_CONFIG['导航栏宽度'] = 140  
    def get_scaling_factor(resolution):
        """根据分辨率返回缩放因子"""
        scaling_factors = {
            "4k": 1.8,    # 3840x2160
            "2k": 1.4,    # 2560x1440
            "1080p": 1.0, # 1920x1080
            "low": 0.9    # 低于1080p
        }
        return scaling_factors.get(resolution, 1.0)  
        
    def _apply_resolution_adjustments(self, config):
        """应用分辨率调整(基于1080p标准配置)"""
        resolution = get_screen_resolution()
        
        # 基准配置(1080p)
        base_config = {
            '1080p': {
                '图标大小': 48,
                '窗口宽度': 900,     
                '窗口高度': 600,
                '每行工具数': 3,   
                '标题字体大小': 16,
                '导航栏字体大小': 13,
                'IP字体大小': 13,
                '按钮字体大小': 12,  
                '标题栏高度': 50,
                '导航栏宽度': 160,
                '按钮宽度': 16,     
                '导航按钮间距': 5,
                '按钮水平内边距': 15,
                '按钮垂直内边距': 5  
            },
            # 2K配置(基于1080p的1.33倍缩放)
            '2k': {
                '图标大小': 64,     
                '窗口宽度': 1200,   
                '窗口高度': 800,   
                '每行工具数': 4,   
                '标题字体大小': 18,  
                '导航栏字体大小': 15,
                'IP字体大小': 15,
                '按钮字体大小': 14,
                '标题栏高度': 60,   
                '导航栏宽度': 200,  
                '按钮宽度': 18,     
                '导航按钮间距': 6,  
                '按钮水平内边距': 18,
                '按钮垂直内边距': 6
            },
            # 4K配置(基于1080p的1.78倍缩放)
            '4k': {
                '图标大小': 72,     
                '窗口宽度': 1400,   
                '窗口高度': 900,   
                '每行工具数': 5,   
                '标题字体大小': 20,  
                '导航栏字体大小': 16,
                '按钮字体大小': 14,  
                '标题栏高度': 65,   
                '导航栏宽度': 220,  
                '按钮宽度': 20,     
                '导航按钮间距': 7,  
                '按钮水平内边距': 20,
                '按钮垂直内边距': 7
            }
        }
        
        # 应用调整(如果分辨率匹配则覆盖配置)
        if resolution in base_config:
            config.update(base_config[resolution])
            logger.info(f"已应用 {resolution} 分辨率优化配置")

根据分辨率自动调整的代码。我没有测试环境,需要你自己编译。只有版本2带自动调整功能,版本1是不带的,可以自己设置。
回复

使用道具 举报

192#
发表于 2025-7-8 06:26:29 | 只看该作者
谢谢分享
回复

使用道具 举报

193#
发表于 2025-7-8 11:54:21 | 只看该作者
感谢分享!
回复

使用道具 举报

194#
发表于 2025-7-8 11:55:27 | 只看该作者

感谢楼主分享
回复

使用道具 举报

195#
发表于 2025-7-8 15:36:23 | 只看该作者
好东西必须试
回复

使用道具 举报

196#
发表于 2025-7-8 15:55:32 | 只看该作者
感谢分享。
回复

使用道具 举报

197#
发表于 2025-7-8 17:28:48 | 只看该作者
试试。。。。。。。。。。。。。
回复

使用道具 举报

198#
发表于 2025-7-8 18:48:57 | 只看该作者
好工具,大佬辛苦,谢谢!
回复

使用道具 举报

199#
发表于 2025-7-9 08:06:43 | 只看该作者
感谢分享!
回复

使用道具 举报

200#
发表于 2025-7-9 08:27:29 | 只看该作者
感谢分享下载试用
回复

使用道具 举报

201#
发表于 2025-7-9 09:25:52 | 只看该作者
~ 谢谢楼主分享~
回复

使用道具 举报

202#
发表于 2025-7-9 09:28:45 | 只看该作者
好东西,试试用
回复

使用道具 举报

203#
发表于 2025-7-9 09:37:26 | 只看该作者
谢谢分享
回复

使用道具 举报

204#
发表于 2025-7-9 11:28:43 | 只看该作者
先收藏了再说
回复

使用道具 举报

205#
发表于 2025-7-9 11:50:58 | 只看该作者
试用一下
回复

使用道具 举报

206#
发表于 2025-7-9 12:06:38 | 只看该作者
下载看啊看
回复

使用道具 举报

207#
发表于 2025-7-9 12:17:43 | 只看该作者
都是实用工具,确实不错
回复

使用道具 举报

208#
发表于 6 天前 | 只看该作者
我的工具箱 v2025.07.03
回复

使用道具 举报

209#
发表于 6 天前 | 只看该作者
谢谢分享
回复

使用道具 举报

210#
发表于 6 天前 | 只看该作者
维护好工具  支持个
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-7-17 09:29

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表