發表文章

目前顯示的是 10月, 2014的文章

Qt5和Qt4版本相容性

圖片
你曾經下載以前Qt4的範例,然而用Qt5卻編譯失敗 嗎? Qt5將功能清楚地分割和簡化,然而造成新舊版本不相容問題, 例如Qt5無法成功編譯 Qt的Google Map . 還有,你也可能遇到所使用此開源程式碼只支持Qt4,例如開源地圖軟件QGIS.然而,工程師難免遇到程式碼更新或維護舊版的軟體,所以每次Release軟體時都手動修改程式碼後建置嗎?這樣操作不但無形中浪費時間,而且也限制你的程式擴展性. 下表,我整理出這兩個版本相關類別差異,我們主要根據Qt版本修正標頭和專案檔,而Qt的版本檢查主要有以下幾種: 專案檔,參數QT_MAJOR_VERSION檢查Qt主要版本號: 若Qt的版本大於4,需要引用那些模組: greaterThan( QT_MAJOR_VERSION , 4): 若Qt的版本小於5,需要引用那些模組: lessThan( QT_MAJOR_VERSION ,5): 標頭,加入標頭QtGlobal利用巨集QT_VERSION得到Qt版本 #include <QtGlobal> #if QT_VERSION >= 0x050000 //版本大等於5需加入那些標頭 #else //版本小於5需加入那些標頭 #endif 版本對照表 類別 描述 Qt4 Qt5 QApplication 管理 GUI 應用程式控制流向和主要設置 標頭 (Header ) #include <QtGui/QApplication> #include < QApplication> 專案檔 (.pro) QT += gui QT += widgets QWebFrame 在網頁呈現 Frame 標頭 (Header ) #include <QWebFrame> 專案檔 (.pro) QT += gui QT += webkitwidgets QtMultimedia

Qt與Google Map:編譯QJson

圖片
上一篇 教你如何使用Git Bash下載Qt的Google Map的範例,由於此範例利用JSON 存取位置資訊,因此還需要編譯第三方函式庫QJson,所以未編譯QJson之前是無法執行此範例. Json是一種輕量型資料交換格式,它可以記錄整數,實數,字串,依順序排列的數值和一系列成對數字和名字.QJson是將JSON 的資料轉換成Qt的資料型態QVarient,也就是說利用此函式庫很輕易使用Qt管理JSON 資料. QJson官方介紹有兩種方法可以編譯此函式庫,而本篇將只說明如何利用CLI Way編譯此範例,若有教程有任何不清楚的地方,請參考教學影片. CLI Way GUI Way 順帶一提,請不要使用GitHub網頁按下『Download ZIP』下載QJSON,否則無法編譯成功.請使用上一篇Git Bash下載此函式庫. 編譯環境 Windows 7 64bit Qt 5.3.1(MinGW 4.8 32 bit) 建議:Qt 4.0以上的版本: 編譯器MINGW QJSON GitHub Page https://github.com/flavio/qjson CMake 3.0.2以上 教學影片

TokyoLoader:下載優酷、土豆等大陸影音網站

圖片
你知道大陸影音網站有分段下載限制嗎? 圖一.Freemake無法完整下載優酷影片 之前在 Freemake下載線上影片 證明他能完整下載Youtube影片,然而在大陸影音網站卻完全行不通.如上圖所示,你按下『 Paste URL 』按鈕加入大約有23分鐘優酷影片,但它只下載六分鐘,甚至你需要繼續播放一段時間才能下載影片,這是Freemake程式bug嗎?  不是,而是大陸影音網站將影片分段防止他人下載. 目前,中文解決方案是安裝此影音網站的下載器和 安裝碩鼠 ,但是大陸軟體一般有安全性風險,而且無法從瀏覽器直接下載.所以沒有其他替代方案嗎?有,日本人開發一套下載軟體TokyoLoader,雖然目前只有日本語系,然而它在Chrome瀏覽各大陸網站時,很貼心在畫面右側增加下載按鈕選項,如下圖二所示.換句話說,當你觀看影片時,你無須切換畫面只需要按下TokyoLoader圖示 ,即可下載影片. 最後,由於有版權影片擋台灣IP,若要下載影片請安裝 Unblock Youku ,我就將不在贅述. 圖二. TokyoLoader下載圖示位址 作業環境 Windows 7 64bits TokyoLoader-目前只支援日文版 (optional) 安裝Chrome附加元件- Unblock Youku 教學影片