久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    淺入深出QWT

     guitarhua 2012-11-30

    淺入深出QWT

    現(xiàn)在看到的本文已經(jīng)是第三版,寫這篇博文的起初原因是本菜菜最近準(zhǔn)備使用Qwt開發(fā)一些功能部件,而公司里基本是使用win Xp系統(tǒng)進(jìn)行開發(fā)工作,為了便于日后的團(tuán)隊(duì)開發(fā),所以研究了怎么將qwt庫(kù)和QtCreator整合起來。但是由于不是很嚴(yán)謹(jǐn)?shù)膽B(tài)度,但隨便的實(shí)驗(yàn)感覺成 功后,感覺整合沒問題后,就輕松地寫了篇博文,幸虧由于shiroki大姐的指出,才發(fā)現(xiàn)許多不足,甚至是嚴(yán)重的錯(cuò)誤會(huì)誤導(dǎo)別人。通過雙休日的不懈努力和 研究,總算實(shí)驗(yàn)成果,并且證實(shí)了本菜菜的思路,而且對(duì)于Qt更加了解,對(duì)以前缺少的知識(shí)點(diǎn)也得到了補(bǔ)足,這個(gè)內(nèi)容么,也真正做到的淺入深出。在基于Qt繪制科學(xué)圖表 -- Qwt試用中,shiroki大姐介紹了怎么樣在linux下安裝qwt,并使用qwt,本菜菜經(jīng)過在winXp操作系統(tǒng)下的不斷嘗試,發(fā)現(xiàn)能快速地使用Qt Creator進(jìn)行編譯,而在開發(fā)程序時(shí)也能使用Qt Creator進(jìn)行,故詳細(xì)地介紹給大家。

    首先確定你使用的是winXP操作系統(tǒng),并且已經(jīng)安裝了Qt SDK for windows,如果沒有安裝,可以去Qt官方網(wǎng)站下載安裝包安裝,安裝的過程十分簡(jiǎn)便,跟普通的windows的EXE安裝包沒有太大區(qū)別,指定好路徑,一路next就可以安裝,在安裝完成后,也無需設(shè)置環(huán)境變量即可使用來編寫編譯Qt程序。

    安 裝完畢后,即可使用QtCreator,然后去下載qwt的源代碼,目前的版本為qwt-5.2.0,在前面文章中提供過項(xiàng)目主頁地址,在項(xiàng)目主頁地址下 可以選擇下載對(duì)應(yīng)linux的tar源碼壓縮包或者對(duì)應(yīng)win的zip源碼壓縮包,我們選擇的自然是zip壓縮包,然后下載完成后,解壓在英文路徑下的目 錄即可。

    有了Qt SDK,qwt的編譯過程自然就變得簡(jiǎn)單無比了,環(huán)境變量啊,Qt的lib庫(kù)啊,一切都有Qt SDK幫助,這就是為什么是我想說傻瓜式安裝qwt的原因。相比以前的編譯,安裝和設(shè)置環(huán)境變量,使用Qt Creator可以幫助簡(jiǎn)化步驟。

    打開Qt Creator,打開qwt源碼目錄下的.pro工程文件,然后點(diǎn)擊左下的run按鈕,qwt就開始了自動(dòng)編譯的的過程:

    編譯過程需要5到10分種時(shí)間,可以坐下別的事,或者喝杯咖啡什么的>_<,并且Qt Creator幫助我們做好一切工作,我們只要等待編譯完成就可以了。

    當(dāng) 編譯完成后,只要完成最后一步就可以在winXP上使用QtCreator來編寫qwt相關(guān)程序,并且在Qt設(shè)計(jì)師里使用qwt的部件。在編譯完成qwt 目錄下,有l(wèi)ib目錄和designer目錄,將lib目錄里的qwt5.dll文件拷貝至qt sdk的目錄下的qt目錄的bin目錄中(比如本菜菜為F:\Qt\2009.03\qt\bin),將libqwt5.a文件拷貝至對(duì)應(yīng)的lib目錄 (如F:\Qt\2009.03\qt\lib),最后將designer目錄下的plugins目錄的designer目錄(真繞口啊囧)下的 libqwt_designer_plugin5.a文件和qwt_designer_plugin5.dll拷貝到跟上面一樣對(duì)應(yīng)的plugins目錄 下的designer目錄(如F:\Qt\2009.03\qt\plugins\designer),看起來十分繁瑣,其實(shí)是非常簡(jiǎn)單的過程。

    好吧,如果真是這樣用真的就太美好了,真的是傻瓜式的安裝,只要編譯好將庫(kù)文件復(fù)制過去,這真是容易極了。。。

    但是事與愿違,這一切只是淺入的開頭,真正的深出還在后面,以上這樣步驟可以視為是準(zhǔn)備qwt庫(kù)的過程,而真正要寫qwt還有很重要的步驟,本菜菜將放在下一篇詳細(xì)解說,如果你想在winXP上使用qwt,就請(qǐng)先按這些步驟完成吧。

    在上篇中,介紹了如何使用QtCreator編譯安裝qwt,現(xiàn)在介紹怎么使用QtCreator來編寫使用了qwt庫(kù)的qt程序。

    為 了簡(jiǎn)化流程,本菜菜直接復(fù)制了qwt中example的代碼,并且使用QtCreator新建一個(gè)工程并將代碼粘貼進(jìn)去。這時(shí)如果誤以為只要點(diǎn)擊run就 可以運(yùn)行程序,那就是大錯(cuò)特錯(cuò)了。本菜菜開始時(shí)就犯了如下的錯(cuò)誤,不幸的是,是直接使用了qwt目錄里的example,而里面的pro工程文件可是設(shè)置 完畢的,只要生成了庫(kù)文件dll和libxx.a的文件情況下,自然是可以運(yùn)行的。本菜菜就是這樣被蒙蔽了,才造成qwt庫(kù)設(shè)置完畢的假象。

    這時(shí)如果點(diǎn)擊run,多半會(huì)出現(xiàn)以下錯(cuò)誤:

    簡(jiǎn) 單地來說,就是QtCreator找不到qwt庫(kù)中各個(gè)類型的聲明。解決的辦法也很簡(jiǎn)單,將qwt的頭文件包含進(jìn)去即可。去qwt的解壓目錄,在下面有個(gè) src目錄,里面就有所有qwt的源碼文件,將其中的.h頭文件復(fù)制出來,然后去Qt SDK的安裝目錄,在下面的qt子目錄的include目錄里(比如F:\Qt\2009.03\qt\include)新建一個(gè)Qwt文件,將復(fù)制出來 的.h文件粘貼進(jìn)去。

    Qwt畢竟是第三方庫(kù),指望QtCreator能自動(dòng)認(rèn)出來,還需要在.pro里文件設(shè)置LIBS和INCLUDEPATH ,這些屬于qmake的知識(shí)范疇內(nèi),有興趣的朋友可以去看看文檔qmake手冊(cè)部分:http://qt./doc/4.5/qmake-manual.html.

    本菜菜的設(shè)置如下:

    LIBS += -L”f:/Qt/2009.03/qt/lib” -lqwt5

    INCLUDEPATH += f:/Qt/2009.03/qt/include/qwt

    各人設(shè)置愛好都不一樣,大家可以根據(jù)自己的需求來設(shè)置。

    上面這些步驟濃縮起來時(shí)很簡(jiǎn)單,但在一無所知地情況下,本菜菜花費(fèi)了大量的時(shí)間來嘗試,可謂步步都留下辛勤的汗水。

    恐怕很多在想了,現(xiàn)在總可以正常使用qwt了吧,好吧,我也是這樣想的,結(jié)果卻是:

    真 是很郁悶的錯(cuò)誤啊,然后又花費(fèi)了大量的時(shí)間進(jìn)行研究,原因其實(shí)也很簡(jiǎn)單,在winXP下面,Qt是不能混用庫(kù)的。在QtCreator下面,默認(rèn)編譯運(yùn)行 的是debug模式,而本菜菜編譯出來的是release庫(kù),自然就不行了。這時(shí)設(shè)置QtCreator為release模式,就能運(yùn)行程序,但這樣,調(diào) 試怎么辦了?

    當(dāng)然,只要編譯qwt生成debug庫(kù)文件,自然就可以在QtCreator下使用debug模式編譯使用。

    這是,去qwt的源碼目錄,打開qwtconfig.pri文件,可以使用記事本,也可以使用類似UltraEdit的軟件工具,在里面找到這段:

    win32 {
            # On Windows you can’t mix release and debug libraries.
            # The designer is built in release mode. If you like to use it
            # you need a release version. For your own application development you
            # might need a debug version.
            # Enable debug_and_release + build_all if you want to build both.

            CONFIG            += debug     # release/debug/debug_and_release
            #CONFIG           += debug_and_release
            #CONFIG           += build_all
        }

    修改成為

        win32 {
            # On Windows you can’t mix release and debug libraries.
            # The designer is built in release mode. If you like to use it
            # you need a release version. For your own application development you
            # might need a debug version.
            # Enable debug_and_release + build_all if you want to build both.

            #CONFIG            += debug     # release/debug/debug_and_release
            #CONFIG           += debug_and_release
            CONFIG           += build_all
        }
        else {
            CONFIG           += release     # release/debug
        }
    }

    然后按照上篇中的編譯流程,最后把生成的dll和.a文件拷貝過去即可,其中,如果是debug的文件,文件名會(huì)多個(gè)d,比如qwtd5.dll,而在QtCreator里運(yùn)行debug模式,也需要在.pro文件里稍作修改:

    LIBS += -L”f:/Qt/2009.03/qt/lib” -lqwtd5

    INCLUDEPATH += f:/Qt/2009.03/qt/include/qwt

    最后,程序總算能成功運(yùn)行了,整合到設(shè)計(jì)器的部分就請(qǐng)等下篇吧

    在上和中篇中,通過一些列簡(jiǎn)單的配置,我們可以方便在WinXP上編譯安裝Qwt庫(kù),并且對(duì)pro文件作少需修改,就可以順利的使用Qwt庫(kù)開發(fā)程序。

    對(duì) 于習(xí)慣敲代碼的人來說,到這步已經(jīng)足以滿足開發(fā)的需求,但對(duì)于要求快速應(yīng)用開發(fā)或者是習(xí)慣于Qt設(shè)計(jì)器的開發(fā)人員來說,這還遠(yuǎn)遠(yuǎn)不夠。細(xì)心的人可能會(huì)覺 得,前面把庫(kù)文件復(fù)制過去了,不是應(yīng)該已經(jīng)集成到了Qt設(shè)計(jì)器里么。這樣想的人可以說,對(duì)于Qt SDK是不甚了解,Qt SDK是由兩部分組成,Qt Creator 和Qt 庫(kù),沒有Qt Creator,照樣能使用Qt庫(kù)寫程序,沒有了Qt庫(kù),Qt Creator可干不了什么。

    在上中,我做的緊緊是把Qwt庫(kù)集成到了Qt庫(kù)中,如果啟動(dòng)Qt的庫(kù)的設(shè)計(jì)器,自然就能看到旁邊可選擇得Qwt部件,而在QtCreator的設(shè)計(jì)器中,是不會(huì)出現(xiàn)Qwt的部件。

    以 此類推,解決的辦法就是講Qwt插件文件復(fù)制到QtCreator的bin目錄下去,如我就是F:\Qt\2009.03\bin\designer。假 如這能一次性成功,那該是多么好的事情,現(xiàn)實(shí)是殘酷的,QtCreator中的設(shè)計(jì)器顯示該插件無法加載,而錯(cuò)誤信息顯示:
    “The plugin uses incompatible Qt library. Expected build key “Windows msvc relase full-config”, to “Windows mingw release full-config”.

    明明Qt庫(kù)是用mingw編譯,為什么會(huì)出現(xiàn)msvc編譯器呢?于是仔細(xì)查找了有關(guān)資料,發(fā)現(xiàn)以下這段話:

    The version of QT Creator shipped with the QT SDK Open Source version for windows is build using Visual Studio, whereas the SDK is build with and supports g++ (MinGW). This doesn’t cause too many problems, but it totally defeats building and installing QT Designer plugins into QT Creator. The error message is:

    Expected build key “Windows msvc release full-config” got “Windows mingw release full-config”

    結(jié)果非常清晰了,Qt SDK for Windows的兩部分是由不同編譯環(huán)境編譯而成,QtCreator是由msvc編譯,Qt庫(kù)是由mingw編譯,我們編譯出來的Qwt庫(kù)是基于mingw的Qt庫(kù),自然就不能被QtCreator識(shí)別。

    那解決的辦法也自然出來了:
    It can be solved three different ways:

    1) Build QT Creator from source with MinGW
    2) Build the plugin with Visual Studio
    3) Build QT Creator with build key checking turned off.

    相信這樣的英文難不倒各位,而我選擇了第一種辦法,嘿嘿,只要拿現(xiàn)有的QtCreator把從官下載的QtCreator源碼編譯下,不就OK了么,多么easy的過程。看過上的同學(xué)們應(yīng)該能很輕易的完這步驟。

    重新使用編譯完的QtCreator后,Qwt部件總算出現(xiàn)了,漫長(zhǎng)繁瑣的文章也到此為止,希望大家都能順利地使用上Qwt庫(kù)。

      本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
      轉(zhuǎn)藏 分享 獻(xiàn)花(0

      0條評(píng)論

      發(fā)表

      請(qǐng)遵守用戶 評(píng)論公約

      類似文章 更多

      主站蜘蛛池模板: 少妇午夜啪爽嗷嗷叫视频| 国产精品中文字幕免费| 好深好湿好硬顶到了好爽| 成人亚欧欧美激情在线观看| 精品国产AV最大网站| 亚洲AV无码成人网站手机观看| 白嫩少妇无套内谢视频| 国产成人一区二区三区视频免费 | 国产精品中文字幕视频| 免费看欧美全黄成人片| 亚洲VA中文字幕无码久久| 天堂mv在线mv免费mv香蕉| 六十路老熟妇乱子伦视频| 国产精品无码专区| 无码激情亚洲一区| 无码国内精品久久人妻| 欧美精品一区二区在线观看播放| 欧美人和黑人牲交网站上线| 欧美成人一卡二卡三卡四卡| 成人午夜福利视频| 国产又黄又爽又刺激的免费网址| 91福利一区福利二区| 亚洲AV鲁丝一区二区三区| 日韩高清亚洲日韩精品一区二区| 最新无码国产在线视频人与 | 日韩av日韩av在线| 国产精品自产拍在线观看| 国产精品自在拍首页视频8| 国产精品毛片无遮挡高清 | 四虎在线成人免费观看| 欧美性XXXX极品HD欧美风情| 老司机久久99久久精品播放免费| 国产99视频精品免费视频36| 久久精品国产一区二区三区| 国产成人高清精品亚洲| 亚洲AV综合色区无码另类小说| 国产精品丝袜亚洲熟女| √天堂中文www官网在线| 亚洲欧美中文字幕5发布| 狠狠色狠狠色综合久久蜜芽| 中文字幕国产精品二区|