关于Qt几个问题的答案
2015-08-24 20:57
204 查看
一、如何emit一个其它类的signal
比如要在A类里emit一个B类的signal。好多人写了比较复杂的方法。其实看Qt的帮助文档就知道了。
就把A类声明为B类的friend class就行。就可以emit了。多简单。
二、在嵌入式linux 里面的Qt要调用系统调用,或者C语言的库,怎么办。
就是要C++和C混合编程了。除了声明extern “C” 以外,注意这是给C++调用C函数的时候用的。当你的C函数里面还调用了系统调用或者C库的时候,
由于qt的编译是先经过MOC把qt的一些宏等转成正常的C++代码实现。所以在MOC这一步,需要把C库加到.pro文件里面,否则qt的MOC是找不到这些东西的。会报一大堆错出来。
具体就是在.pro文件里面增加
INCLUDEPATH += where-your-gcc-is/usr/include
对于嵌入式linx交叉编译来说,需要注意的是,这个INCLUDEPATH指的是目标机,比如ARM,的头文件目录。而不是x86交叉编译器的头文件和库目录。当然这两个一般是挨着放的,自己看准了。
比如要在A类里emit一个B类的signal。好多人写了比较复杂的方法。其实看Qt的帮助文档就知道了。
就把A类声明为B类的friend class就行。就可以emit了。多简单。
二、在嵌入式linux 里面的Qt要调用系统调用,或者C语言的库,怎么办。
就是要C++和C混合编程了。除了声明extern “C” 以外,注意这是给C++调用C函数的时候用的。当你的C函数里面还调用了系统调用或者C库的时候,
由于qt的编译是先经过MOC把qt的一些宏等转成正常的C++代码实现。所以在MOC这一步,需要把C库加到.pro文件里面,否则qt的MOC是找不到这些东西的。会报一大堆错出来。
具体就是在.pro文件里面增加
INCLUDEPATH += where-your-gcc-is/usr/include
对于嵌入式linx交叉编译来说,需要注意的是,这个INCLUDEPATH指的是目标机,比如ARM,的头文件目录。而不是x86交叉编译器的头文件和库目录。当然这两个一般是挨着放的,自己看准了。
相关文章推荐
- PyQt5学习随笔01--计算一个文件夹里我们码的代码行数&&PyQt的多线程通信
- Qt QTreeWidget 树形结构实现
- 发布MQTT消息究竟有多快?
- mqtt,Could not connect: CONNECTION_REFUSED_NOT_AUTHORIZED
- Qt中如何利用QPushButton来实现一个弹出菜单
- 借贷宝推广得现金是真的_注册就送人民币20元_邀请码CRJYQTK
- QT 移植到VxWorks的探索之路
- 编译OpenCV(CMake+Mingw492_32(Qt5.5自带)+OpenCV3.0)
- QT简单软键盘+SYSZUXpinyin修改
- Qt 元对象系统 一
- 自学QT之报错: name lookup of 'i' changed for ISO 'for' scoping
- Qt 设置窗体无边框
- Qt Creator 模块QtSql
- Ubuntu下QTE的安装
- 自学QT之QMutableListIterator
- QT TabBar:全面增强资源管理器(转)
- QT Creator快捷键不能用
- Qt隐藏标题栏
- QT pro 文件跨平台的 include 和lib 配置
- Qt中如何添加.qrc文件