• <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

            国产69精品久久久久观看软件| 色诱久久av| 国产毛片欧美毛片久久久| 久久婷婷五月综合成人D啪 | 国内精品久久久久久99蜜桃| 国产欧美一区二区久久| 精品久久久久一区二区三区| 国产精品一区二区久久精品涩爱 | 久久综合伊人77777麻豆| 久久人妻AV中文字幕| 99热成人精品热久久669| 久久丝袜精品中文字幕| 久久不见久久见免费视频7| 久久av高潮av无码av喷吹| 久久午夜无码鲁丝片| 亚洲国产成人久久笫一页| 久久国产精品99精品国产987| 日本五月天婷久久网站| 精品久久久久久无码人妻蜜桃| 久久精品日日躁夜夜躁欧美| 亚洲午夜精品久久久久久人妖| 亚洲精品综合久久| 国产精品一久久香蕉国产线看 | 国产精品嫩草影院久久| 看久久久久久a级毛片| 久久性精品| 国产午夜福利精品久久| 国产成人精品白浆久久69| 国产精品久久婷婷六月丁香| 精品乱码久久久久久夜夜嗨| 成人国内精品久久久久影院| 久久亚洲私人国产精品| 亚洲色大成网站www久久九| 久久人人爽人人爽人人片AV不| 久久成人国产精品一区二区| 国产精品一久久香蕉国产线看 | 久久久久无码精品国产| 久久天天躁狠狠躁夜夜2020一| 日本精品久久久久久久久免费| 久久精品国产亚洲5555| 精品久久久久久无码免费|