随笔分类 - Qt
摘要:话接上篇。通过前几篇博客,我们实现在Lua脚本中执行Qt类中函数的方法,以及在Lua脚本中连接Qt对象的信号与槽。 但是,我们也能发现,如果希望在Lua脚本中执行Qt类的函数,就必须绑定一个真正实现功能的函数。如QWidget::show(),需要写一个在栈中取出widget指针,widget调用show()函数的方式。如果希望在Lua中调用大量函数,就需要编写大量的C++实现函数。有没有什么省时省力的好方法呢? 上一篇中我们实现了在Lua脚本中连接信号与槽。我们只是传过去了两个QObject的对象,和两个字符串的函数名。我们并没有具体实现那个函数,但是槽函数顺利执行了。这给了笔者启发...
阅读全文
摘要:话接上文。笔者为了方便使用Lua,自己编写了一个Lua的类。主要代码如下: QLua.h 1 #ifndef QLUA_H 2 #define QLUA_H 3 4 // own 5 #include "include/lua.hpp" 6 7 // qt 8 #include 9 #include 10 #include 11 12 #include 13 #include 14 #include 15 #include 16 17 class QLua : public QObject18 {19 Q_OBJECT20 public:21 QLua(QObjec...
阅读全文
摘要:话接上篇。成功配置好Qt+Lua+toLua后,我们可以实现在Lua脚本中使用各个Qt的类。直接看代码吧。#include "include/lua.hpp"#include #include #include #include static int tolua_new_QWidget(lua_State* pState){ QWidget* widget = new QWidget(); tolua_pushusertype(pState, widget, "QWidget"); return 1;}static int tolua_delete_QW
阅读全文
摘要:偶然间看到Lua这种脚本语言,有点兴趣,简单学习了一下。 发现Lua与C++之间可以实现非常强的交互性。Lua中可以使用C++中的函数,C++中也可以使用Lua中的函数。由此可以引发出很多奇思妙想了。 简单来说,Lua动态的特性补充了C++的功能。当然,也看你具体怎么用。 笔者经常使用Qt,故准备将Qt和Lua结合在一起。想象一下在Lua脚本中调用如下代码:w = QWidget:new()w:show() 然后弹出一QWidget的窗口,是多么感人的一件事情呀。 好,下面开始配置环境吧。 1. 下载Lua 5.1。目前的最新版本是5.2,但是因为使用到的toLua不支持Lua...
阅读全文
摘要:最近的项目上用到了关于多线程的知识,自己也比较感兴趣,所以就拿了那本《C++ GUI Qt4 编程》来学习。 这本书的第14章是关于多线程的知识,使用的Qt版本是Qt4.x。在下用的是最新的Qt 5.2,所以代码上有一些不兼容,稍加修改就可以运行了。 Qt的多线程简单来说就是继承QThread类,重载run()函数,start()启动线程。首先来看下书上的第一个例子:(修改版的代码已上传,点击下载)class Thread : public QThread{ Q_OBJECTpublic: Thread(QString message = "", QObject *pare
阅读全文
摘要:在使用Qt自带的Designer设计界面过程中,我们可能会引入一些资源文件,而建立qrc文件。那么在VS2008的平台上如何将使用呢? 方式如下: 首先在引入qrc文件,如下图,点击属性 如图,将命令行修改为:rcc.exe -name $(InputName) -no-compress $(InputPath) -o $(InputName)_qrc.cpp 另外,在主程序main.cpp里#include "MyQt_qrc.cpp",在mian()函数里加一句Q_INIT_RESOURCE(MyQt); 范例代码如下:#include #include #includ
阅读全文
摘要:Qt自带的Designer非常好用,可以设计整个面板的布局,而且很容易对齐。 在非QT4工程里如何使用UI文件呢?下面给大家一一道来。 UI文件是Qt独有的记录软件UI的文件,可以用记事本打开,可以看到语法近似于xml。再使用Qt自带的uic(User Interface Compiler)命令编译后,可以产生一个C++的界面类。 uic命令格式如下:uic My.ui -o My.h 生成的.h文件可以直接使用在C++工程里,例如下面的代码:// MyQt.h#pragma once#include #include "MyQtUI.h"class MyQt : publ
阅读全文
摘要:QT在VS2008上跑的不是很顺利。。。在用户自定义槽之后,connect无法顺利连接自定义的槽与信号,可能会有如下报错:1>MyWidgetEx.obj : error LNK2001: 无法解析的外部符号 "public: virtual int __thiscall MyWidgetEx::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@MyWidgetEx@@UAEHW4Call@QMetaObject@@HPAPAX@Z)1>MyWidgetEx.obj : error L
阅读全文
摘要:为了学QT,花了近三小时解决了整个平台搭建的问题。。。以下为详细内容~ 1.需要下载的: (1)VS2008.这是用的版本。虽然已经13年了,VS也有了WIN8版的,但是还是喜欢08。整个平台都是面向08搭建的,10的话其实一个也差不多。 (2)Qt libraries 4.8.4 for Windows (VS 2008, 233 MB)以及Visual Studio Add-in 1.1.11 for Qt4 如果你无法访问外网的话,可以试试以下链接,我上传到百度云盘的: http://pan.baidu.com/share/link?shareid=35...
阅读全文
浙公网安备 33010602011771号