Qt学习笔记:Qt中使用Lua

今天想在Qt中使用Lua进行数据操作

结果发现在Qt中使用Lua的文章较少,虽然很简单,但是还是写出来提供入门,顺便记录一下

我使用的是Qt Creator 3.4.2,用的是mingw4.9.2的编译器

我在Lua官网下载lua版本是5.3.1

首先,在要Qt中进行编译Lua,拿到.a和dll这两个文件

在Qt Creator->文件->新建文件或项目->Library->C++库,接下来根据情况一路下一步完成创建

然后,右键自己的项目,选择添加现有文件,添加下载好的Lua文件中的src文件,除了lua.c和luac.c这两个文件,其余都导入,当然那个Makefile也不用

大概就成这样了

接下来选择编译方式为Release,然后点击构建

好了,我这边编译的目录是build-lua-Desktop_Qt_5_5_0_MinGW_32bit-Release

在里面release文件夹中找到liblua.a和lua.dll,我这边直接构建后就出现这两了

最后把这两复制到下载好的lua文件夹中,就可以使用了

使用方法:

先在自己的pro文件中导入

INCLUDEPATH += E:\Lua\src
LIBS += E:\Lua\liblua.a

然后再把dll复制到自己项目中的debug或者release目录下(比如build-lua-Desktop_Qt_5_5_0_MinGW_32bit-Release)

在某个cpp中实验一下,下面只是举例

 1 #include "kv_read_write.h"
 2 #include "QDebug"
 3
 4 extern "C"
 5 {
 6     #include "lua.h"
 7     #include "lauxlib.h"
 8     #include "lualib.h"
 9 }
10
11 KeyValue::KeyValue()
12 {
13     lua_State* L = luaL_newstate();
14     lua_pushstring(L,"123");
15     qDebug(lua_tostring(L,1));
16     lua_close(L);
17 }

上面的方法经过本人验证是可行的

本人对于库的使用经验不是很多,有错误请指出

时间: 2024-11-03 22:04:24

Qt学习笔记:Qt中使用Lua的相关文章

【Qt学习笔记】13.拖放技术:Drag & Drop

1.接受拖放 Drag & Drop 是一个界面操作,用于在两个窗口间传递数据. Drag Source: 拖放源窗口 Drag Target: 拖放目标窗口 拖放操作: 1.在源窗口:选中目标,按下鼠标,移动,拖至目标窗口(Drag) 2.在目标窗口:取消鼠标,到指定位置,松开鼠标(Drop) (按下ESC取消操作) MIME: MIME(Multipurpose Internet Mail Extensions)被传递的数据以MIME格式传送,它是多组type-data数据:(type0,

QT学习笔记—1

1.模态和非模态的区别:非模态可以同时操作两个窗口,模态的只能在顶层窗口关闭之后才能使用其他窗口 //同时显示出widget和dialog窗口,非模态     QDialog *dialog = new QDialog(this);     dialog->show(); //同时显示出widget和dialog窗口,模态     QDialog *dialog = new QDialog(this);     dialog->setModal(true);     dialog->sh

Qt学习笔记-Widget布局管理

Qt学习笔记4-Widget布局管理 以<C++ GUI Programming with Qt 4, Second Edition>为参考 实例:查找对话框 包含三个文件,finddialog.h,finddialog.cpp及main.cpp. //finddialog.h代码 #ifndef FINDDIALOG_H#define FINDDIALOG_H #include <QDialog> class QCheckBox;class QLabel;class QLineE

【Qt学习笔记】2.窗体Widget && 屏幕坐标 && 布局

一.窗体 在Qt中,把窗体(口)叫做Widget. Widget可以是主窗体(口),也可以是依附在主窗体(口)上的各种控件,作为子窗体,这两种窗口,分别称作顶级窗口(top-level widget)和子窗口(sub widget). 顶级窗口:一个标准的窗口,带边框.标题栏.若干按钮.(独立) 子窗口:在窗口里面的窗口,例如:按钮.文本框等控件.(不独立,随着父窗口移动) 注意: 1.每个子窗口都有一个父窗口 2.子窗口里面可能包含了若干子窗口,是一层一层的关系. 3.顶级窗口也有父窗口:就是

qt学习笔记(五) QGraphicsPixmapItem与QGraphicsScene的编程实例 图标拖动渐变效果

应大家的要求,还是把完整的project文件贴出来,大家省点事:http://www.kuaipan.cn/file/id_48923272389086450.htm 先看看执行效果,我用的群创7寸屏,主机是mini2440,分辨率是800*480,程序写比較粗糙,但对刚開始学习的人还是有一点启示,大家一起进步. qt中提供了QGphicsView,QGraphicsScene,QGraphicsItem,QGraphicsPixmapItem是QGraphicsItem的子类 分辨创建它们的实

QT学习笔记(1)

采用QT创建一个GUI的应用程序时,都必须包含一个QApplication的对象,而对于非GUI的QT程序,可以使用不依赖QtGui库的QApplication QT的主要类: QLable                   标签类 QPushButton          按钮类 QVBoxLayout          竖布局管理器类 QHBoxLayout          横布局管理器类 QWidget                 窗口部件类 QGridLayout        

AspectJ学习笔记2-Eclipse中AspectJ插件AJDT的正确安装方法

接着之前一篇日志.这个事情也挺无语的,简单记录一下. 在这里:http://www.eclipse.org/ajdt/ 可以下载最新的Eclipse Plugin,下载解压之后,一般来说,直接把解压后文件夹下的features和plugins放到Eclipse的文件夹下就行了.不过我这样做以后,启动Eclipse,发现没什么作用.才参考网上有人介绍的第二种方法,也就是Help--Install New Software--Add--Local这种方式选择刚才的解压文件夹,但是这样操作以后会报像下

《Cocos2d-x游戏开发实战精解》学习笔记3--在Cocos2d-x中播放声音

<Cocos2d-x游戏开发实战精解>学习笔记1--在Cocos2d中显示图像 <Cocos2d-x游戏开发实战精解>学习笔记2--在Cocos2d-x中显示一行文字 之前的内容主要都是介绍如何在屏幕上显示图像,事实上除了图像之外,音乐的播放也可以被理解为一种显示的方式,本节将学习在Cocos2d-x中播放声音的方法. (1)在HelloWorld.h中对HelloWorld类进行如下定义: class HelloWorld : public Cocos2d::Layer { pu

Linux学习笔记——虚拟机中安装VMware Tools

0 前言 VMware Tools是VMware虚拟机中自带的一种增强工具,只有在VMware虚拟机中安装好了VMware Tools,才能实现主机与虚拟机之间的文件共享,实现文件在虚拟机之间的复制粘贴. 最近购买了周立功的一款EasyARM开发板,作为树莓派Linux学习的补充.在虚拟机中安装了周立功提供的ubuntu镜像,总觉得在主机和PC机之间直接复制粘贴才爽,所以又安装了Vmware Tools.     [相关博文] [ Linux学习笔记--vmware plarer中安装ubunt

[Android学习笔记]ListView中含有Button导致无法响应onItemClick回调的解决办法

转自:http://www.cnblogs.com/eyu8874521/archive/2012/10/17/2727882.html 问题描述: 当ListView的Item中的控件只是一些展示类控件时(比如TextView),注册ListView的监听setOnItemClickListener之后,当点击Item时候会触发onItemClick回调. 但是,当Item中存在Button(继承于Button)的控件时,onItemClick回调不会被触发. 解决方案: 在Item的布局文件