自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 资源 (20)
  • 收藏
  • 关注

翻译 【翻译】复制或不复制?参数在信号-槽中的传递

Qt的信号-槽在触发的时候,信号中的参数会被复制多少次?如果信号的参数是常引用且接收信号的槽是常引用呢?信号-槽连接的类型是队列或者直接方式有什么不一样呢,如果信号的参数是值传递又会有什么不一样?Qt的文档并有没有对这个问题进行描述,在stackoverflow有详细的讨论,但遗憾的是只让读者去选择正确的答案。所以,我们详细的系统的看一下参数在信号-槽是如何传递的。环境配置:在我们的实验中...

2020-03-10 15:57:37 611

原创 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 5730 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 (四) osgText显示文字以及显示中文的问题

前提:很悲催的是

2014-11-14 22:56:22 3806

原创 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 4321 1

原创 osg for android (一) 简单几何物体的加载与显示

首先需要一个andr

2014-10-27 21:21:46 4388 2

Qml-收起展开面板

示例基于Qml开发的收起展开面板,可定制标题和内容组件,并有ScrollView展示,具体可参照blog。

2020-07-06

C++11 线程的中断,继续以及停止

C++11关于thead的应用,利用std::condition std::mutex提供如何中断,停止和继续功能,

2020-03-18

Qt信号槽中的信号传递对比

测试Qt在信号槽中不同的参数的传递差别,具体可参考文章 https://www.jianshu.com/p/f9bf3241aa24

2020-03-09

QtQuick实现无边框窗口的拉伸,拖拽

使用QtQuick实现一个无边框框架,支持标题栏双击最大化-普通窗口,支持最大按钮,最小按钮和普通那妞,支持窗体边缘拉伸,窗体拖拽等。

2020-02-25

QtQuick使用QAudioOutput音频播放

使用QAudioOutput将QAudioinput音频播放的一个小例子,具体可以看博客 https://www.jianshu.com/p/5c4c50b9f84c

2020-02-25

QtQuick使用QAudioinput进行音频采集

本示例工程主要介绍了如何使用QAudioInput设置采集的参数,指定采集的设备等,采集数据到内存,并保存为wav文件。请看博客https://www.jianshu.com/p/04302b8f2e7e

2020-02-24

Qt Quick中集成OSG渲染的最简单版本

Osg作为一个组件(Item)潜入到Osg的最简单版本,主要是将Osg渲染成FrameBuffer到QQuickItem上

2020-02-17

qml-TreeView拖拽-移动item到其他item

在Qml中实现TreeView移动Item到其他Item的Demo实现 文章参考https://www.jianshu.com/p/8d7eeabfbd83

2020-02-17

Qt工程生成MiniDump文件

本工程是个示例工程,介绍如何在Qt工程配置pro文件,定义生成dump文件按接口,生成Dump文件,介绍可以看https://www.jianshu.com/p/bfcdeae609a4

2020-02-13

将录音可视化为波形图

通过继承Qt中的QQuickPaintedItem实现重绘事件,再将继承类注册到qml中,然后在Qml中启动录音事件,这样我们就能够在C++实现将录音的数据绘制出来,代码简单明了,也可以很快速移植的Qt-Widget 具体可以参考https://www.jianshu.com/p/4b9c82cac75b

2020-02-12

在Qml中TreeView自定义数据类型

qml中的TreeView是QtQuick.Controls 1.x的一个组件,由于现在Qt发展QtQtQuick.Controls 2.x,1.x不再更新新特性,这方面的资料也比较少,如果想在其Delegate中传递更多的数据,则需要对styleData.value进行定制,具体实现请看代码以及博客https://www.jianshu.com/p/dc24d010e5e4

2020-01-21

C++传递自定义类型作为参数到Qml

C++传递自定义类型作为参数到Qml 具体请访问https://www.jianshu.com/p/bc3ac5b4b528

2020-01-09

基于Qt的文件异步拷贝,提供进度,中断等

文件异步拷贝,提供进度,中断等 具体可访问 https://www.jianshu.com/p/1ddcdd6ea561

2020-01-09

qml中TreeView自定义数据类型,使在代理(Delegate)中能传递到更多的数据

qml中TreeView自定义数据类型,使在代理(Delegate)中能传递到更多的数据 具体可以访问博客https://www.jianshu.com/p/dc24d010e5e4

2019-10-10

osg for android 中文文字显示

osg for android 中文显示,详细请见blog http://blog.csdn.net/hai7song/article/details/41128177

2014-11-15

OpenGL之天空盒

在csdn上关于天空盒的项目都是vc工程,而且基于win32的,本项目在前人的基础上,修改为MFC项目,并将场景漫游改为鼠标拖拽。

2012-11-03

Qt中的qoci驱动

由于qt默认只有sqlite,psql和odbc驱动,没有oracle的oci驱动。qt提供了oracle的oci驱动源码,需要自己编译,这里将自己编译好的驱动提供给大家。 是在vs2008+qt4.8.3编译的。

2012-10-30

acm题解(电子书)

chm电子书,里边附有解题方法和题目分类,值得推荐

2011-02-05

java几种基本排序(动态演示)

实现了选择排序 插入排序 冒泡排序等三种算法,利用javaGUI界面实现动态演示(动态用线程实现)

2010-09-04

哈夫曼编码/译码(数据结构)

有以下功能:1、从终端读取字符集大小n,n个字符和n个权值,存放于hfmTree中。 2、编码,利用建好的霍夫曼树读取字符,编码,结果存入code文件中 3、译码。将codefile译码,结果存入textFile 4、将结果打印出来。 5、将哈弗曼树打印出来 6、控制台实现

2010-05-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除