目前如果要打印必须要使用quicker.content.SetVarValue("info", info),然后动作里判断info是否为空再输出,很麻烦而且功能受限。希望可以增加一个函数调用提示框。
目前没有这方面的功能。以下信息请参考:
目前没有专门的 quicker.log() 接口。前面直接调用 AppHelper 的方案未经运行验证,不应作为现有版本可用方案推荐。
quicker.log()
AppHelper
不改 Quicker,目前可以这样做:
在动作中预先定义文本变量 info,Python 里封装:
info
def log(message): quicker.context.SetVarValue("info", str(message)) log("开始处理") log("已处理第 1 项") log("处理完成")
在调试模式下,每次 SetVarValue 都会记录一条“脚本写入”日志,不需要后面再添加判断或输出步骤。变量最终只保留最后的值,但日志会记录每次写入。
SetVarValue
这一行为在当前源码和 1.x 参考源码里都有。
在动作内创建子程序 日志提示:
日志提示
message
Python 中封装调用:
from System import String, Object from System.Collections.Generic import Dictionary def log(message): args = Dictionary[String, Object]() args["message"] = str(message) quicker.context.RunSp("日志提示", args) log("开始处理") log("处理完成")
这样可以在 Python 执行过程中调用提示,无需等整个脚本结束后再输出。这里显式使用 .NET 字典,避免 Python dict 的重载转换问题;具体示例尚未实机验证。
dict
直接记录到文件,不依赖 Quicker 接口:
import logging import os import tempfile logger = logging.getLogger("my_quicker_action") logger.setLevel(logging.INFO) if not logger.handlers: handler = logging.FileHandler( os.path.join(tempfile.gettempdir(), "quicker-python.log"), encoding="utf-8" ) handler.setFormatter(logging.Formatter("%(asctime)s %(message)s")) logger.addHandler(handler) logger.info("开始处理")
对应截图中的需求,调试看信息用方案 1,运行中弹提示用方案 2。