• <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 閱讀(11091) 評論(0)  編輯 收藏 引用 所屬分類: VC

            久久精品中文无码资源站| 777米奇久久最新地址| 久久精品视屏| 久久夜色精品国产亚洲| 一本色道久久综合亚洲精品| 国产欧美久久久精品| 精品久久久久久久久久中文字幕 | 亚洲va久久久久| 久久无码国产专区精品| 精品久久人妻av中文字幕| 久久久久久极精品久久久| 久久久国产精华液| 狠狠人妻久久久久久综合| 77777亚洲午夜久久多人| 国内精品久久久久久中文字幕| 久久久久亚洲国产| 久久99国产精一区二区三区| 欧美成人免费观看久久| 国产精品va久久久久久久| 婷婷久久香蕉五月综合加勒比| 伊人久久综在合线亚洲2019| 亚洲国产精品高清久久久| 无码人妻久久一区二区三区蜜桃| 麻豆亚洲AV永久无码精品久久| 很黄很污的网站久久mimi色| 狠狠狠色丁香婷婷综合久久五月 | 久久久国产精品福利免费| 久久亚洲精品国产亚洲老地址| 91久久精品电影| 亚洲国产精品久久久久婷婷软件| 亚洲AV日韩精品久久久久 | 亚洲∧v久久久无码精品| 亚洲午夜无码AV毛片久久| 丰满少妇人妻久久久久久4| 国产精品免费福利久久| 久久精品亚洲精品国产色婷| 亚洲精品蜜桃久久久久久| 狠狠色狠狠色综合久久| 中文字幕无码av激情不卡久久| 久久久人妻精品无码一区| 色99久久久久高潮综合影院|