原创 qml編寫微信UI界面

初次嘗試qml編寫界面(Qt 5.94版本)手機實際效果:效果出乎意料的好,完美適應屏幕。目前版本只是界面部分編寫,qml與c++交互部分還需要繼續學習。

原创 vs2013及以上版本opengl環境搭建

一、更新電腦驅動 由於OpenGL的大多數實現都是由顯卡廠商編寫的,當產生一個bug時通常可以通過升級顯卡驅動來解決。這些驅動會包括你的顯卡能支持的最新版本的OpenGL,這也是爲什麼總是建議你偶爾更新一下顯卡驅動。   二、GLFW+G

原创 qml之從零開始編寫網易雲音樂(三)

播放控制欄界面編寫,預覽:控制欄主體:Rectangle{ width: parent.width height: 54*dp color: "#ffffff" Rectangle{ id:

原创 C++11 常用新特性總結

1、關鍵字autoauto的自動類型推導,用於從初始化表達式中推斷出變量的數據類型。通過auto的自動類型推導,可以大大簡化我們的編程工作auto實際上實在編譯時對變量進行了類型推導,所以不會對程序的運行效率造成不良影響另外,似乎auto

原创 Qt 運行程序設置圖標

一、準備一張ico圖標文件 二、打開項目的pro文件 添加 RC_ICONS =XXX.ico(重新編譯運行可以發現,窗口的左上角變成了我們設置的圖標) 三、新建文本文檔 然後將名稱改爲proj.rc,輸入如下內容: IDI_ICON1

原创 c++ 與 qml 信號槽交互之 c++對象信號觸發qml函數

預覽:雙擊qml的model 實現音樂播放以及歌曲信息,播放進度一、設置上下文屬性,使c++類對象能夠被qml調用Player mPlayer; engine.rootContext()->setContextProperty("Play

原创 qml之從零開始編寫網易雲音樂目錄

一、初步實現無邊框窗口,以及左邊的導航欄二、完善標題欄的搜索框三、播放控制欄界面四、導入本地音樂頁面五、Qt Creator 調用第三方庫libZPlay 解析音頻文件 標題、專輯、文件名、藝術家六、導入本地音樂功能實現七、雙擊model

原创 Qt Creator 調用第三方庫libZPlay 解析音頻文件 標題、專輯、文件名、藝術家

libZPlaylibZPlay庫集成了所有支持格式(mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm )的編碼解碼器。一、官網下載sdkhttp://libzplay.source

原创 qml 結合 QSqlTableModel 動態加載數據 MVC

效果預覽:一、準備好對應的 QSqlTableModel#ifndef LOCALMUSICMODEL_H #define LOCALMUSICMODEL_H #include <QObject> #include <QSqlTable

原创 面向對象中七個的設計原則

七大設計原則:開閉原則單一職責原則里氏替換原則依賴倒置原則接口隔離原則最少知識原則(迪米特法則)少用繼承多用組合(合成複用)這些原則的作用:可以讓自己設計實現出來的軟件系統更加穩定,容易維護,並具有一致性(一)開閉原則開閉原則定義 :一個

原创 qml之從零開始編寫網易雲音樂(二)

完善標題欄的搜索框,效果如下:搜索欄:自定義組合控件 //搜索 Rectangle{ id:searchTextEdit anchors{ left:titleLabe

原创 Qt 線程操作

方法一:movetothread將對象移入子線程,通過信號槽來分配任務以及信息傳遞,這也是Qt推薦的做法。 auto thread = new QThread(); auto sbsImporter = new SoloSb

原创 linux 下 plugin cannot be loaded for module "QtMultimedia": 無法加載庫

這個問題要手動安裝 pulseaudio。sudo apt-get install libpulse-dev。QtMultimedia 在linux 下是用 pulseaudio 來做聲音。

原创 Qt model 顯示設置(居中靠右)、表頭、自定義排序

設置:顯示居中、靠左 QVariant SoloDccDataSegmentInfoTableModel::data(const QModelIndex &index, int role) const { if (role =

原创 QT邊框陰影

方法一、重載paintEvent函數void WebView::paintEvent(QPaintEvent *event) { QPainterPath path; path.setFillRule(Qt::Windin