搜尋此網誌

工商服務

2009年3月5日 星期四

[Qt漫談]下載並安裝Windows版本Qt 4.5+Qt Creator 1.0

前天(3月3日)下午連進去Qt首頁下載的還是Qt 4.5 rc1版本,沒想到隔了一天再去看,不僅網頁版面已經變了,而且Qt 4.5還以正式版之姿登場,相關網頁上的rc1字樣也都已不復見。就連安裝流程的畫面也不一樣了,因為首次將IDE工具附加進來。

被Nokia併購後,Trolltech已更名為Qt Software,所以下載網址變成http://www.qtsoftware.com/downloads。根據授權方式有分LGPL/Free Downloads和Commercial Downloads兩種,其中LGPL/Free Downloads的下載套件又可分為Qt SDK(包含程式庫、IDE、開發工具)和Qt(只有程式庫和開發工具)兩種,也就是說只想執行Qt程式而不想自行開發的人選擇後者即可,雖然後者實際上也會把開發工具一併安裝起來。換言之,跟我原先以為的會類似.NET Framework程式庫的發行方式並不相同,無論是Qt SDK或Qt,你都必須先下載Qt Framework的原始碼,然後再編譯產生程式庫,不過隨著Qt的普及,未來這些程式庫(例如Qt Core是QtCore4.dll)可能也下載得到,而不必再自行編譯了。以Windows平台為例,其Qt SDK的檔案大小是194MB,單純的Qt程式庫則是159MB(而非網頁上標示的136MB),差別在於後者不會安裝Qt Creator。









接著啟動Qt Creator(可進行Qt應用程式開發的輕量級跨平台IDE)小試身手看看:從「File→New」建立新的「Qt Gui Application」專案,全部採用預設值建立完成後,可以點按.ui檔以啟動Designer工具於右側,最後從「Build→Run」啟動建置成可執行檔的應用程式(什麼都沒有的空白表單)。












補充一下程式集裡面看到的Qt資料夾內容,原先的Qt Designer設計工具現在隱身到Tools資料夾底下去了(如果是安裝Qt Framework版本的話,看到的資料夾內容則與Qt 4.4的大同小異,亦即基本上只是少了Qt Creator而已):



連結:Qt Software的下載專區
連結:〈Qt 4.5, Qt Creator released〉新聞稿
連結:〈New Cross-Platform IDE and SDK makes Qt ideal for students and researchers〉新聞稿
連結:iThome新聞〈諾基亞發表新版 Qt 開發軟體〉

【2009.03.06 updated】
【2009.05.14 updated】

2009年3月4日 星期三

[Qt密技]執行Qt程式時找不到相關dll檔該怎麼辦?





Qt程式在散佈之後可能會遭遇無法正確執行的窘境,問題就出在找不到程式本身所需的動態連結程式庫(dll)檔案。解決方法有二:

一、將Qt工具靜態編譯,這樣開發出來的程式就會內含所需的程式庫;好處是執行檔是獨立的一整包,缺點則是執行檔會因此很龐大,而且日後想要更新程式庫必須重新建置執行檔。

二、因為程式庫被建置成動態連結的分享方式,所以在部署時必須把所需的dll檔案放到該執行檔找得到的地方;這樣子的好處是執行檔會小很多,而且隨著日後程式庫的升級,程式效能也會跟著提升;更重要的是可以維持Qt 4.5新的LGPL授權方式,保有是否開放原始碼的主控權。

針對第二種解決方案,以此處於Qt 4.4環境下執行的範例程式為例,只要將缺少的mingwm10.dll(15.5KB)、QtCored4.dll(17.8MB)和QtGuid4.dll(64.3MB)跟執行檔放置在一起即可,不過Qt程式庫之所以會這麼龐大,是因為它們是包含偵錯資訊的版本(所以在版本數字4前面有個「d」字樣),如果是發行版本的程式庫,其大小則分別只有QtCore4.dll(2.53MB)和QtGui4.dll(9.94MB);或者索性將程式庫通通放置到C:\WINDOWS\System系統路徑底下,然而缺點則是因為系統路徑是優先搜尋的路徑,所以如果程式在編譯時所採用的Qt版本與程式庫的不相同,照樣會發生錯誤,以筆者的電腦為例,上頭有三套Qt 4.x的環境,就經常會發生這種版本錯亂的問題,呵呵。



連結:Qt 4.4技術文件〈Deploying Qt Applications〉
連結:Qt 4.5技術文件〈Deploying Qt Applications〉

【2009.03.06 updated】
【2009.04.15 updated】
【2009.04.17 updated】

2009年3月3日 星期二

稿件範例程式與開放原始碼專案將全面套用「MIT授權條款」

MIT授權(亦稱X授權)條款內容如下:

/****************************************************************************
Copyright (c) {YEAR} Powered by JARSING.COM

Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
****************************************************************************/

被授權人權利及義務:
  • 被授權人有權利使用、復製、修改、合併、出版發行、散布、再授權及販售軟體及軟體的副本。
  • 被授權人可根據程式的需要修改授權條款為適當的內容。
  • 在軟體和軟體的所有副本中都必須包含版權聲明和許可聲明。
簡單說就是唯一的限制只有必須標明著作權聲明,其他的一概不多加干涉,要修改、要販賣、要商業使用都可以,衍生出來的程式碼也未強制必須公開。基本上與BSD授權雷同,差別僅在於後者明確禁止使用版權擁有人/貢獻人的名字來為衍生軟體背書促銷。

參考資料:Wikipedia上的「MIT License」解釋
參考資料:維基百科上的「MIT許可證」解釋
參考資料:開放原始碼組織的MIT授權條款範本
參考資料:Wikipedia上的「BSD License」解釋
參考資料:Various Licenses and Comments about Them
參考資料:License Research

【2009.03.04 updated】