【Qt项目实战】利用脚本拓展CPP应用步调(2)——Lua脚本及编辑器

[复制链接]
发表于 2025-12-10 05:36:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
考古 《【Qt项目实战 】:利用脚本拓展CPP应用步调(1)——Lua脚本及编辑器》
一、LuaBridge

迩来在项目标某个模块再次利用Lua作为步调拓展语言,开发了一些新的功能。
这里借助 LuaBridge 轻松实现Qt调用C++类成员函数及成员对象等功能;在(1)中,我们更多展示的是利用CFunction的方式,提供接口给Lua脚本调用。
LuaBridge https://github.com/DeHby/LuaBridge

利用及其简朴,保举指数5颗星
二、怎样在Qt控件中展示Lua打印消息

我们都很清晰,print 函数可以在lua脚本中轻松实现打印。但是要将打印效果重定向到Qt控件中,新手朋侪大概会轻微有点烦恼。
这里提供两种方法,一种简朴,另一种进阶:
2.1、界说自己的print函数,并利用qDebug()实现打印输出。

Qt支持qDebug() 的输出重定向。
在 Qt 中,qDebug() 是用于输出调试信息的函数。默认情况下,它将信息输出到尺度输出(通常是控制台)。如果你想重定向 qDebug() 的输出,可以利用 QDebug 类的 setOutput 方法,大概通过重定向 qInstallMessageHandler 函数来实现。
方法 1: 利用 qInstallMessageHandler

你可以通过安装自界说的消息处理惩罚步调来重定向 qDebug() 的输出。以下是一个示例,展示怎样将 qDebug() 的输出重定向到文件:
  1. #include <QCoreApplication>
  2. #include <QDebug>
  3. #include <QFile>
  4. #include <QTextStream>
  5. void customMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
  6.    
  7.    
  8.     QFile outFile("debug_output.txt");
  9.     if (outFile.open(QIODevice::Append | QIODevice::Text)) {
  10.    
  11.    
  12.         QTextStream ts(&outFile);
  13.         switch (type) {
  14.    
  15.    
  16.             case QtDebugMsg:
  17.   
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表