马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
考古 《【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() 的输出重定向到文件:
- #include <QCoreApplication>
- #include <QDebug>
- #include <QFile>
- #include <QTextStream>
- void customMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg) {
-
-
- QFile outFile("debug_output.txt");
- if (outFile.open(QIODevice::Append | QIODevice::Text)) {
-
-
- QTextStream ts(&outFile);
- switch (type) {
-
-
- case QtDebugMsg:
-
复制代码 |