Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

KuGouDemo

https://github.com/what951006/KuGouDemo

用Qt實現的高仿酷狗音樂。個人覺得比下面推薦的QtMusic質量要高,相應的難度也要大一些。其實這個項目我早就發現了,而且之前還在裡面提取了左側那個自定義的tab窗口控件用在了我自己的項目中。

Github上優秀開源C++項目推薦第四彈

QtMusic

https://github.com/AndyQsmart/QtMusic-1.0

Qt QtMusic是基於Qt C ++實現的,編譯後支持跨平臺運行編寫的音樂播放器。包含歌曲播放,歌單管理,歌詞顯示以及網絡歌曲和換膚等功能,界面友好。

  • 歌曲播放使用Qt自帶的媒體庫實現了歌曲的播放,支持mp3,wma等音樂格式。
  • 歌單管理使用Qt自帶的圖形庫實現了歌單管理的界面,重寫了一些事件函數,實現了新建歌單,拖拽歌曲,歌曲高亮等功能。使用Qt封裝的SQLite數據庫,實現了歌曲,歌單的存檔。
  • 歌詞顯示通過手寫字符串匹配解析了lrc格式的歌詞文件,然後通過二分查找實現了顯示某時刻的歌詞。
  • 網絡歌曲利用網易音樂API,通過post和get方法獲得歌曲,並使用QMediaPlayer直接播放網絡歌曲。

下面是我編譯以後試用的動態圖,但是我發現不能播放歌曲,可能是長時間沒人維護了,網易雲的API版本太低的問題,我也沒有詳細的定位,但是實現方法和思路還是很有借鑑意義的。

Github上優秀開源C++項目推薦第四彈

MapGraphics

https://github.com/raptorswing/MapGraphics

用Qt編寫的基於圖塊的“草繪地圖”庫。它的目的是使C ++ / Qt開發人員能夠輕鬆地向其應用程序添加漂亮的交互式地圖。

Github上優秀開源C++項目推薦第四彈

Magic-Tower-Qt

https://github.com/Armour/Magic-Tower-Qt

一個用Qt實現的打怪、升級、爬塔的小遊戲,是男人就上20層。

  • GUI:主要使用QGraphicsview。
  • 數據庫:連接到本地sqlite數據庫。
  • 作弊:您可以在“作弊”中選擇作弊選項!菜單,然後隨心所欲。XD(GodMode =>與怪物戰鬥不會降低您的HP,但會增加它!)
  • 性別:不同的性別具有不同的基本屬性。
  • 商店:您可以在此處購買諸如hp,攻擊,各種鑰匙之類的東西。
  • 書籍:您可以抬起頭來,在這層樓上更多地瞭解怪物,“預期的損壞”非常有幫助。
  • 錯過+暴擊:戰鬥中會出現一些隨機的錯過或致命傷害,因此沒有絕對的最佳結果。
  • BGM:使用qmediaplayer(尚未完全完成,因此我僅使用示例BGM)。
  • NPC:他們會給你一些建議。
  • 升級:殺死足夠的怪物,您將升級,所以要勇敢!
  • 幫助:遊戲開始後,您可以按“ h”鍵尋求幫助。
  • 不同的結尾:有三個不同的結尾,希望您能找到一個不錯的:)
Github上優秀開源C++項目推薦第四彈

QtSnake

使用C++/QT圖形視圖框架開發的貪吃蛇遊戲,類似於之前手游上挺火的貪吃蛇大作戰。

Github上優秀開源C++項目推薦第四彈

QMarkdownTextEdit

https://github.com/pbek/qmarkdowntextedit

QMarkdownTextEdit是一個C++的Qt QPlainTextEdit小部件,支持Markdown高亮和其他一些功能。

  • Markdown突出顯示
  • 代碼語法高亮
  • 點擊鏈接 Ctrl + Click
  • 與Tab和一起縮進Shift + Tab
  • 與重複的文字 Ctrl + Alt + Down
  • 用搜索文本 Ctrl + F使用Up和在搜索結果之間跳轉Down使用關閉搜索字段 Escape
  • 用替換文本 Ctrl + R您也可以用正則表達式或整個單詞替換文本
  • 非常快
  • 以及更多...
Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Madplotlib

https://github.com/madplotlib/madplotlib

Qt圖表的c++包裝器,外觀像matplotlib,但不是。

Madplotlib是一個c++頭文件庫,提供簡單的2D繪圖功能,類似於Python的matplotlib。Madplotlib在背後使用Qt圖表來呈現外觀很酷的圖,這些圖很容易在Eigen的幫助下創建。

使用時,確保使用Qt 5.7或更高版本,並且已正確安裝

Eigen3.x。之後,只需將Madplotlib.h添加到您的項目中,用法如下:

<code>Eigen::ArrayXf a = Eigen::ArrayXf::LinSpaced(20, 0, 2000);
Eigen::ArrayXf b = Eigen::ArrayXf::LinSpaced(20, 0, 100);
Eigen::ArrayXf c = Eigen::ArrayXf::Zero(20);

b = b * b;
c = 1000;

Madplotlib plt;
plt.title("Test 5: Linear vs Exponential vs Flat");
plt.ylabel("Y Values");
plt.xlabel("X Values");

plt.plot(a, QString("label=Linear"));
plt.plot(b, QString("label=Exponential"));
plt.plot(c, QString("label=Flat"));
plt.legend("loc=center right");
plt.show();/<code>

效果圖:

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈

Github上優秀開源C++項目推薦第四彈


分享到:


相關文章: