- 博客(21)
- 资源 (20)
- 收藏
- 关注
翻译 【翻译】复制或不复制?参数在信号-槽中的传递
Qt的信号-槽在触发的时候,信号中的参数会被复制多少次?如果信号的参数是常引用且接收信号的槽是常引用呢?信号-槽连接的类型是队列或者直接方式有什么不一样呢,如果信号的参数是值传递又会有什么不一样?Qt的文档并有没有对这个问题进行描述,在stackoverflow有详细的讨论,但遗憾的是只让读者去选择正确的答案。所以,我们详细的系统的看一下参数在信号-槽是如何传递的。环境配置:在我们的实验中...
2020-03-10 15:57:37 610
原创 Qml-展开收起面板
搜了一下网上没有类似功能的UI,实现了一个给大家参考。AccordionElement.qml 由一个layout组成,layout里包含标题和内容组件,可以在外部实现内容组件进行替换,如isOpen为false,内容组件将收缩起来,反之则展开。import QtQuick 2.5import QtQuick.Layouts 1.1ColumnLayout { id: rootElement property bool isOpen: false property s
2020-07-06 17:05:43 2169
原创 C++11: 线程的暂停和继续和停止
当我们执行一个如图片处理视频处理等费时费CPU的操作时,很多时候是将其移到一个线程,并监测其进度,如果这个时候我们需要提供 暂停、恢复、停止的功能,本文就用C++11来实现其功能。C++11 提供了线程(std::thead,std::async等)以及线程安全等控制(如std::unique_lock std::lock_guard, s...
2020-03-18 14:33:43 14537 8
原创 QtQuick实现无边框窗口的拉伸,拖拽和自定义标题栏
由于Qt的原生窗口带有的标题栏无法定制,然而通常情况下我们需要自定义窗体上的关闭、最小化等按钮、背景,甚至需要不需要标题栏。在QtQuick实现去除标题栏,也即无边框很简单,只需要在Qml-Window中设置:flags: Qt.Window | Qt.FramelessWindowHint | Qt.WindowMinimizeButtonHint但是这个时候的窗体不能拖拽,也不能在窗体的...
2020-03-10 15:56:25 2183 1
原创 QtQuick音频播放
上一篇文章讲到了音频采集,既然有了采集,也就需要将音频数据进行播放,当然也可以读取音频文件或接收网络音频数据进行播放,这个时候就要用到QAudioInput的平行类QAudioOutput,QAudioOuput的使用和QAudioInput差不多,同样需要设置音频的参数,指定播放的设备(QAudioDeviceInfo),指定播放的数据缓冲(QIODevice)下面说一下一些使用的差别设置...
2020-03-10 15:55:27 423
原创 QtQuick音频采集
QT中有一个强大的音频处理的库,可以设置采集的参数,指定采集的设备等,这个强大的类就是QAudioInput,下面介绍如何通过这个类实现音频的设置,采集和保存QAudioInput属于multimedia模块,故我们在pro文件需要 QT += multimedia采集音频的参数设置通过QAudioFormat 来设置,告诉计算机应该以什么样的方式进行数据采集,如采样率、声道数量、编码方...
2020-03-10 15:54:29 257
原创 QtQuick中集成OSG渲染
从目前网上介绍OSG与Qml集成有两种方式:在[QtQuick2OSGItem](https://bitbucket.org/leon_manukyan/qtquick2osgitem/src/master/sampleapp/)通过继承抽象类__QQuickFramebufferObject::Renderer__来重写渲染接口,在__QQuickFramebufferObject__渲染成...
2020-03-10 15:48:55 2392 3
原创 QtQuick-TreeView如何拖拽或移动item到其他item
由于qml中的TreeView属于QtQuick1.x,目前也不再进行feature上的扩展,相关的资料也不多,导致想在上面实现一些常见的操作也变得困难,比如本次想在TreeView实现从移动item到其他item上。我们之前的文章在qml-TreeView自定义模型里的数据讲解了如何在TreeView传递自定义数据类型,本次文章仍然在这个基础上实现。import QtQuick 2.7im...
2020-03-10 15:41:03 888 1
原创 Qt工程生成MiniDump文件
关于Dump的文件介绍在这里,今天要介绍的是如何在Qt工程生成Dump文件。首先我们在Qt的pro文件(工程配置文件)要取消优化,并加入调试信息,如下:#加入调试信息QMAKE_CFLAGS_RELEASE += -gQMAKE_CXXFLAGS_RELEASE += -g#禁止优化QMAKE_CFLAGS_RELEASE -= -O2QMAKE_CXXFLAGS_RELEA...
2020-03-10 15:25:11 1124
原创 QtQuick 麦克风采集生成波形图(二)
在这篇文章麦克风采集生成波形图描述了如何使用Qml中的Chart组件来绘制波形图,但是有时候我们需要绘制一些额外的信息,比如横轴和纵轴也要能够自定义,这个时候在qml-chart中就比较难定制了,我们可以通过继承Qt中的QQuickPaintedItem实现重绘事件,再将继承类注册到qml中,这样我们就能够在C++实现将录音的数据绘制出来首先我们需要继承QQuickPaintedItem这个类...
2020-03-10 15:22:03 1553
原创 ffmpeg: 从视频里提取视频帧,并保存为图片文件
用ffmpeg处理视频时,有时需要从视频里提取某个时间的一帧视频数据,这时需要用到ffmpeg的一个关键函数,av_seek_frame。av_seek_frame原型如下:int av_seek_frame(AVFormatContext *s, int stream_index, int64_t timestamp, int flags){}参数1: s操作上下文;参数2: str...
2020-03-10 15:17:28 5729 3
原创 QtQuick:C++传递自定义类型作为参数到Qml
在Qt毫无疑问的是可以将自定义类型(struct/class)作为数据类型在C++类之间传递,但是从C++传递自定义类型并且暴露属性给Qml就不行了,因为C++与Qml之间的信号传递只支持基本类型,具体可以参考Data Type Conversion Between QML and C++具体参考如下代码(带注释的是注意事项,不支持从QObject派生,并不支持NOTIFY属性)cla...
2020-03-09 17:28:22 1474 1
原创 基于Qt的异步拷贝文件
由于Qt的中QFile::copy是个原子操作,所以并不支持拷贝文件进度。所以用QThread实现了在线程中拷贝文件,并能实时更新文件进度,主要代码封装在FileCopyer类里FileCopyer.h#pragma once#include <QtCore/qstring.h>#include <QtCore/qobject.h>#include <Qt...
2020-03-09 17:23:00 878 1
原创 QtQuick-TreeView使用自定义模型里的数据
######我们在使用Qml的TreeView时,默认节点的数据是不能修改,即如果我们使用代理来自定义节点时,使用的styleData.value 默认是string,很多时候我们需要向代理传递更多的数据,这时候我们就需要一个自定义数据结构,然后在QStandardItem将数据结构“嵌”进去。首先我们先定义个数据结构,使用type和size两个属性class CustomType : p...
2020-03-09 16:58:35 557
原创 QtQuick 麦克风采集生成波形图(一)
本文主要介绍如何从麦克风进行音频采集,并使用qml-charts模块进行显示波形图显示首先关于使用电脑的麦克风设备进行音频采集到内存,可以参考QtQuick音频采集继承抽象类QIODevice,并重写readData()和writeData()两个方法,readData是从外部读取数据,暂且不用管它,我们最主要的是重写writeData()方法,将数据写入到qml中的ChartV...
2020-03-09 16:53:38 1474
原创 在VS2012编译LibGizmo for 64bit
在VS2012编译LibGizmo for 64bitLibGizmo 是一个第三方、小型3D操控器库,可以实现类同3dsmax的移动、平移、缩放的效果以及显示操控柄 作者博客1.从Github下载,打开LibGizmo.sln 出现 分别点击确定和更新。2.将项目从Win32改为 X64,编译出现1>C:\Program Files (x86)\Microsoft Visual Studio
2015-05-11 21:44:20 959
原创 Native Camera和OpenGL ES的混合使用
由于android各个版本中相机实现的差异很大,所以google并没有提供相机的原生api。网上在JNI处理Camera的Preview Data,大多是用SurfaceView来实能够处理将Camera的Preview传递到JNI然后在进行处理,这样导致一个问题就是如果再将处理完的数据再显示,就必须增加多一个SurfaceView或者ImageView控件,对系统资源消耗比较大,而且效率并不比J
2014-12-14 22:59:39 3032 1
原创 osg for android (三) Windows 下编译
之前编译的版本是osg3.0.1,发现使用osgText不能够正确显示文字,google之发觉是osg的一个bug,具体请看这里,想到这个版本已经是2012年的版本,故重新编译一个最新的版本(3.2.1),在最新的版本应该有对这个bug进行修复,也因此记录下在windows编译osg for android的过程。 1.准备: (1) 下载安装cygwin,把其
2014-11-13 23:36:03 1594
原创 osg for android (二) 几何物体的颜色显示以及纹理贴图
上篇的代码仅仅是将图形显示,并通过gl_FragColor=vec4(0.4,0.4,0.8,1.0),简单粗暴的上色,其实在createNode()中创建四边形的时候有创建了几何体的纹理坐标、法线坐标和颜色坐标。下面分别讲颜色的加载和纹理的加载。 1.颜色的加载 颜色的加载有两种方式,一种是通过vertext shader的内建变量gl_Color直接来加载,另外一
2014-10-29 23:54:44 4320 1
QtQuick使用QAudioOutput音频播放
2020-02-25
QtQuick使用QAudioinput进行音频采集
2020-02-24
qml-TreeView拖拽-移动item到其他item
2020-02-17
Qt工程生成MiniDump文件
2020-02-13
将录音可视化为波形图
2020-02-12
在Qml中TreeView自定义数据类型
2020-01-21
qml中TreeView自定义数据类型,使在代理(Delegate)中能传递到更多的数据
2019-10-10
osg for android 中文文字显示
2014-11-15
Qt中的qoci驱动
2012-10-30
哈夫曼编码/译码(数据结构)
2010-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人