原创 QtQuick 麥克風採集生成波形圖(一)

本文主要介紹如何從麥克風進行音頻採集,並使用qml-charts模塊進行顯示波形圖顯示 首先關於使用電腦的麥克風設備進行音頻採集到內存,可以參考QtQuick音頻採集 繼承抽象類QIODevice,並重寫readData()和w

原创 QtQuick中集成OSG渲染

從目前網上介紹OSG與Qml集成有兩種方式: 在[QtQuick2OSGItem](https://bitbucket.org/leon_manukyan/qtquick2osgitem/src/master/sampleapp

原创 QtQuick音頻採集

QT中有一個強大的音頻處理的庫,可以設置採集的參數,指定採集的設備等,這個強大的類就是QAudioInput,下面介紹如何通過這個類實現音頻的設置,採集和保存 QAudioInput屬於multimedia模塊,故我們在pro文

原创 QtQuick-TreeView如何拖拽或移動item到其他item

由於qml中的TreeView屬於QtQuick1.x,目前也不再進行feature上的擴展,相關的資料也不多,導致想在上面實現一些常見的操作也變得困難,比如本次想在TreeView實現從移動item到其他item上。 我們之前的

原创 Qt工程生成MiniDump文件

關於Dump的文件介紹在這裏,今天要介紹的是如何在Qt工程生成Dump文件。 首先我們在Qt的pro文件(工程配置文件)要取消優化,並加入調試信息,如下: #加入調試信息 QMAKE_CFLAGS_RELEASE += -

原创 C++11: 線程的暫停和繼續和停止

當我們執行一個如圖片處理視頻處理等費時費CPU的操作時,很多時候是將其移到一個線程,並監測其進度,如果這個時候我們需要提供 暫停、恢復、停止的功能,本文就用C++11來實現其

原创 QtQuick 麥克風採集生成波形圖(二)

在這篇文章麥克風採集生成波形圖描述瞭如何使用Qml中的Chart組件來繪製波形圖,但是有時候我們需要繪製一些額外的信息,比如橫軸和縱軸也要能夠自定義,這個時候在qml-chart中就比較難定製了,我們可以通過繼承Qt中的QQuic

原创 QtQuick實現無邊框窗口的拉伸,拖拽和自定義標題欄

由於Qt的原生窗口帶有的標題欄無法定製,然而通常情況下我們需要自定義窗體上的關閉、最小化等按鈕、背景,甚至需要不需要標題欄。在QtQuick實現去除標題欄,也即無邊框很簡單,只需要在Qml-Window中設置: flags: Qt

原创 QtQuick音頻播放

上一篇文章講到了音頻採集,既然有了採集,也就需要將音頻數據進行播放,當然也可以讀取音頻文件或接收網絡音頻數據進行播放,這個時候就要用到QAudioInput的平行類QAudioOutput,QAudioOuput的使用和QAudi

原创 【翻譯】複製或不復制?參數在信號-槽中的傳遞

Qt的信號-槽在觸發的時候,信號中的參數會被複制多少次?如果信號的參數是常引用且接收信號的槽是常引用呢?信號-槽連接的類型是隊列或者直接方式有什麼不一樣呢,如果信號的參數是值傳遞又會有什麼不一樣? Qt的文檔並有沒有對這個問題進行

原创 ffmpeg: 從視頻裏提取視頻幀,並保存爲圖片文件

用ffmpeg處理視頻時,有時需要從視頻裏提取某個時間的一幀視頻數據,這時需要用到ffmpeg的一個關鍵函數,av_seek_frame。 av_seek_frame原型如下: int av_seek_frame(AVForm

原创 基於Qt的異步拷貝文件

由於Qt的中QFile::copy是個原子操作,所以並不支持拷貝文件進度。所以用QThread實現了在線程中拷貝文件,並能實時更新文件進度,主要代碼封裝在FileCopyer類裏 FileCopyer.h #pragma once

原创 QtQuick:C++傳遞自定義類型作爲參數到Qml

在Qt毫無疑問的是可以將自定義類型(struct/class)作爲數據類型在C++類之間傳遞,但是從C++傳遞自定義類型並且暴露屬性給Qml就不行了,因爲C++與Qml之間的信號傳遞只支持基本類型,具體可以參考Data Typ

原创 QtQuick-TreeView使用自定義模型裏的數據

######我們在使用Qml的TreeView時,默認節點的數據是不能修改,即如果我們使用代理來自定義節點時,使用的styleData.value 默認是string,很多時候我們需要向代理傳遞更多的數據,這時候我們就需要一個自定

原创 在VS2012編譯LibGizmo for 64bit

LibGizmo 是一個第三方、小型3D操控器庫,可以實現類同3dsmax的移動、平移、縮放的效果以及顯示操控柄 作者博客 1.從Github下載,打開LibGizmo.sln 出現 分別點擊確定和更新。 2.將項目從Win32改