• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            Benjamin

            靜以修身,儉以養德,非澹薄無以明志,非寧靜無以致遠。
            隨筆 - 397, 文章 - 0, 評論 - 196, 引用 - 0
            數據加載中……

            vs2017+Qt 5.12.0開發環境搭建

            1、qt下載:http://download.qt.io/archive/qt/5.12/5.12.0/qt-opensource-windows-x86-5.12.0.exe
            2、執行qt-opensource-windows-x86-5.12.0.exe,在Qt Account - Your unified login to erverything Qt頁面選擇Skip;
                  Qt 5.12.0 設置Qt->Qt 5.12.0 勾選MSVC 2017 32-bit、MSVC 2017 64-bit、 UWP ARMv7(MSVC 2017)、UWP x64(MSVC 2017)、 UWP x86(MSVC 2017)即可。具體的模塊說明如下:
             MinGW 7.3.0 64 bit 編譯器模塊。MinGW 是 Minimalist GNU for Windows 的縮寫,MinGW是 Windows 平臺上使用的 GNU 工具集導入庫的集合。
            用于 UWP 編譯的模塊。UWP 是 Windows 10 中 Universal Windows Platform 的簡稱,有不同編譯器類型的 UWP。
             用于 windows 平臺上的 MSVC 編譯器模塊,如 msvc2015 32-bit 和 msvc2015 64-bit 等。要安裝 MSVC 編譯器的模塊,需要計算機上已經安裝相應版本的 Visual Studio。
             用于 Android 平臺的模塊,如 Android x86 和 Android ARMv7。
            Sources 模塊是 Qt 的源程序。
            Qt Charts 是二維圖表模塊,用于繪制柱狀圖、餅圖、曲線圖等常用二維圖表。
            Qt Data Visualization 是三維數據圖表模塊,用于數據的三維顯示,如散點的三維空間分布、三維曲面等。
             Qt Purchasing、Qt WebEngine、Qt Network Auth(TP)等其他模塊,括號里的 TP 表示技術預覽(Technology Preview)。
            Qt Scritp(Deprecated)是腳本模塊,括號里的“Deprecated”表示這是已經過時的模塊。
            “Tools”節點下面是一些工具軟件,一般不用勾選默認的就可以。內容如下:
             Qt Creator 4.8.0 是用于 Qt 程序開發的 IDE。
             MinGW 5.3.0 是 MinGW 編譯工具鏈。
            Strawberry Perl 是一個 Perl 語言工具。
            3、安裝vs2017的qt插件:Tools-->Extensions and Updates-->Online,搜索Qt,找到Qt Visual Studio Tools下載安裝
            4、配置Qt VS Tool的環境
                Qt VS Tools點擊Qt Options,Add按鈕,Path按鈕找選擇qt安裝目錄下的MSVC 編譯器模塊路徑。
            5、Qt的信號槽
            qt信號槽是觀察者模式的一種實現,特性如下:
            A、一個信號就是一個能夠被觀察的事件,或者至少是事件已經發生的一種通知;
            B、一個槽就是一個觀察者,通常就是在被觀察的對象發生改變的時候——也可以說是信號發出的時候——被調用的函數;
            C、信號與槽的連接,形成一種觀察者-被觀察者的關系;
            D、當事件或者狀態發生改變的時候,信號就會被發出;同時,信號發出者有義務調用所有注冊的對這個事件(信號)感興趣的函數(槽)。
            信號和槽是多對多的關系。一個信號可以連接多個槽,而一個槽也可以監聽多個信號。
            信號槽與語言無關,有多種方法可以實現信號槽,不同的實現機制會導致信號槽的差別很大。信號槽術語最初來自 Trolltech 公司的 Qt 庫,由于其設計理念的先進性,立刻引起計算機科學界的注意,提出了多種不同的實現。目前,信號槽依然是 Qt 庫的核心之一,其他許多庫也提供了類似的實現,甚至出現了一些專門提供這一機制的工具庫。
              信號槽是Qt對象以及其派生類對象之間的一種高效通信接口,是Qt的核心特性,也是Qt區別與其他工具包的重要地方。信號槽完全獨立于標準的C/C++語言,因此要正確的處理好信號和槽,必須借助于一個成為MOC(Meta Object Compiler)的Qt工具,MOC工具是一個C++預處理程序,能為高層次的事件處理自動生成所需要的附加代碼。

            MFC中的消息機制沒有采用C++中的虛函數機制,原因是消息太多,虛函數開銷太大。在Qt中也沒有采用C++中的虛函數機制,而是采用了信號槽機制,原因與此相同。更深層次的原因上,多態的底層實現機制只有兩種,一種是按照名稱查表,一種是按照位置查表。兩種方式各有利弊,而C++的虛函數機制無條件的采用了后者,導致的問題就是在子類很少重載基類實現的時候開銷太大,再加上界面編程中子類眾多的情況,基本上C++的虛函數機制效率太低,于是各家庫的編寫者就只好自謀生路,當然,這其實是C++語言本身的缺陷。

            qt的事件函數要自己手動添加,命名格式些函數是有命名規則的,"on_"后面是控件的設計名字(objectName,步驟三中,紅色字體部分),然后后面是“_clicked()”,你在設計的時候最好遵循這種命名格式,這樣你就可以省掉4.2的步驟(2.連接信號與槽.),也就是說,你如果遵循這個命名格式的話你就不用寫connect()函數了,因為這種定義讓系統能夠自動識別信號與槽的連接。
            如果沒有按照命名規則來命名槽函數,那么就要進行信號與槽的連接,所謂信號與槽的連接就是,一個信號send出來,要有一個槽接收這個信號,然后執行相應任務,這個過程需要連接的,如果不設計這個連接,即使Button send出一個click信號,也沒有什么東西去執行click后的任務。

            在qt工程的ui文件雙擊打開,添加控件和信號槽。

            posted on 2018-12-29 20:19 Benjamin 閱讀(11018) 評論(0)  編輯 收藏 引用 所屬分類: VC

            国产偷久久久精品专区| 久久精品国产2020| 久久精品国产影库免费看| 久久久久一级精品亚洲国产成人综合AV区 | 亚洲中文字幕无码一久久区| 国产亚洲精久久久久久无码77777| 蜜臀久久99精品久久久久久小说| 国产V综合V亚洲欧美久久| 久久99精品久久久久久水蜜桃| 99久久国产宗和精品1上映| 99久久国产综合精品网成人影院| 亚洲日本久久久午夜精品| 久久精品中文无码资源站| 一本久道久久综合狠狠躁AV| 国内精品人妻无码久久久影院导航| 久久久久成人精品无码 | 久久久久九国产精品| 69久久精品无码一区二区| 免费无码国产欧美久久18| 国产精品成人无码久久久久久| 色欲久久久天天天综合网| 久久播电影网| 国产精品久久久久久久久| 久久久噜噜噜久久熟女AA片| 色综合久久夜色精品国产 | 一本久久a久久精品亚洲| 亚洲伊人久久成综合人影院| 久久露脸国产精品| 国产亚州精品女人久久久久久| 99久久婷婷免费国产综合精品| 性做久久久久久久| 东方aⅴ免费观看久久av| 无码国内精品久久综合88| 久久久午夜精品福利内容| 久久精品中文字幕一区| 久久久无码精品午夜| 亚洲?V乱码久久精品蜜桃| 久久精品一本到99热免费| 久久中文骚妇内射| 国产精品久久久久久吹潮| 国产精品久久自在自线观看|