qt - 如何在代码片段中获取当前文件名
问题描述
我正在尝试创建一个代码片段,它将打印一些带有当前文件名和当前方法/标签名称的控制台日志,就像我们systr
在 Eclipse 中的方式一样。
虽然我可以在Tools > Options > Text editor > Snippet添加代码片段,但我找不到任何标签来检索当前文件名。
示例文件(TestMyUI.js):
function doSomething{
console.log("TestMyUI.doSomething()");
}
在这里,我喜欢console.log
使用保存在片段中的模板来生成。因此,对于我输入类似内容的每个地方,都consLog
必须自动完成填充当前文件和方法名称的日志。这与我们systr
在 eclipse IDE 中的类似。
解决方案
添加到@dtech的答案:
报告文件、行和函数已经是登录 Qt 不可或缺的一部分。您所要做的就是正确使用它。不需要代码片段来执行此操作,因为所有这些信息已经被收集console.log
但默认情况下不显示。你现在要做的就是告诉 Qt 让它可见。
一种比创建自定义消息处理程序更简单的方法是简单地注册一个消息模式(请参阅 参考资料qSetMessagePattern
)。有了这个,您可以注册一个模式,该模式应该用于格式化通过 QDebug(包括 QML)记录的任何内容。一个简单的例子:
int main(int argc, char **argv) {
qSetMessagePattern("%{file}:%{line} %{function} -> %{if-category}%{category}: %{endif}%{message}");
QGuiApplication app(argc, argv);
// ...
}
现在在您的 QML 文件中简单地记录任何内容,一切顺利。例如,下面的代码:
function doSomething() {
console.log("test");
}
将输出此示例(使用实际测试文件创建):
qrc:/TestMyUI.js:11 doSomething -> qml: test
推荐阅读
- angular - 在 Angular 6/7 中使用 AGM 显示多个多边形路径
- mongodb - insert_one() 得到了一个意外的关键字参数“check_keys”
- python - 查找两个值并填写
- authorization - 多种访问模式的授权
- android - 使用 SMS Retriever API Android 的 OTP/SMS 自动获取问题
- android - 当打印机和移动设备在 android 的同一网络(WI-FI)上时如何从 android 设备打印?
- visual-studio - 是否可以将同一 Nuget 包的不同版本安装到代码的不同分支中?
- python - iOS:如何安装和执行 Python 脚本?
- android - 图片内存大小与图片文件大小有关吗?
- c - 如何调试微控制器卡住的地方?