VS2013 下安裝 Qt5 一些不能運行的注意事項

原文鏈接:http://www.afanihao.cn/

1. 下載 Qt5

      下載以下軟件:(不管你是 32 位還是 64 位,都下載這幾個文件)

       百度雲盤: 鏈接:https://pan.baidu.com/s/1zeRZwKYcPBub3GqnEHtkDA 密碼:4cuo

       (1)Qt 開發包

qt-opensource-windows-x86-msvc2013-5.6.2.exe

       (2)Qt VS Tools 插件

qt-vs-tools-msvc2013-2.1.1.vsix

        注:從 VS2013 開始,Qt for VS 插件開始使用新版本(後綴是.vsix),逐漸淘汰原來的舊版本(qt-vs-addin-1.2.x.exe)

        注:現在 Qt 的官網爲 http://download.qt.io/

        其中,qt 在這裏下載

         http://download.qt.io/official_releases/qt/5.6/5.6.2/

         qt vs addin 插件在這裏下載

         http://download.qt.io/official_releases/vsaddin/

2. 安裝 Qt5

    假設你已經安裝好了 VS2013

   2,1 安裝 Qt 開發包

     雙擊 qt-opensource-windows-x86-msvc2013-5.6.2.exe,放在默認安裝位置。建議勿做改變。

   2.2 安裝 Qt VS Tools 插件

      先關閉 VS2013,再雙擊運行 qt-vs-tools-msvc2013-2.1.1.vsix 開始安裝。

3. 在 VS201 配置QT VS TOOLS

    打開VS2013,可以在菜單裏找到 QT VS TOOLS

點 QT VS TOOLS 下的Qt Options,添加 C:\Qt\Qt5.6.2\5.6\msvc2013

4. 安裝和配置 Visual Assist X

先關閉 VS2013,然後安裝 Visual Assist X 2018。

(1) 安裝完後,VS2013 裏有如下菜單:

在菜單裏執行 VASSIST X | Visual Assist Options,然後按下面進行。

(1) C/C++ Directories  ,不改也可以(默認是 Project defined)。這裏我們改爲 custom 吧, 如下圖:

再切換右邊的 show directories for,選擇 Other include files,添加幾個 qt 的目錄

(2) Performance上面選擇 Watch for externally … ,下面點 Rebuild

(3)關閉 VS,然後重啓 VS2013

配置完畢!重啓 VS2013!

5. 常見問題彙總

  (1)爲什麼在 VS 裏,雙擊*.ui 的時候打不開設計器( Qdesigner) 呢?

      切換到 Qt Designer 目錄(如 C:\Qt\Qt5.6.2\5.6\msvc2013\bin ) , 把Qt5WebEngineWidgets.dll 隨便改個名字,例如 Qt5WebEngineWidgets222.dll , 之後就可以打開 QtDesigner 了。

   (2)Qt5 帶不帶 HTML 網頁形式的文檔? 也有的,自 5.6.2 版本以後有。

         在 C:\Qt\Qt5.6.2\Docs\Qt-5.6\qtdoc  下找 index.html (注:Qt5.5 沒有 HTML 文檔)

   (3)有沒有其他形式查看 Qt 文檔 ?

         在 Windows 菜單裏,有一個 Assistant,如下圖,運行它將可以在這裏查看開發文檔。

      

   (4)Generated Files 下的 ui_xxx.h 頭文件爲什麼打不開呢?

          這個文件是自動生成的。先點 F7 編譯,然後這個文件就能打開了。

   (5) Ui_xxx.h在生成後要不要再執行 visual assist 的 reparse了呢?

          一般是不需要的。但是最新vsix插件生成的頭文件用了#param once,這導致不能reparse了!!!

      注意它生成的頭文件: 在Header Files下生成的頭文件,如果有#prama once這句,則會產生麻煩,解決辦法:

     -->先刪除 #param once 這一行

     -->再添加我推薦的頭文件保護:

     #ifndef __AAA_H

    #define __AAA_H

    ....

    #endif

    

事件機制:

Qt中的事件處理機制叫“信號和槽”signal & slot
其理論模型爲:
對象a中有一個信號signal : XXX (代表一個事件)
對像b中有一個槽slot: YYY (事件處理函數)
事先把它們連接起來
connect(a, XXX, b, YYY);
然後,當a中事件發生時,b中的處理函數就會被
調用。

當點擊"顯示"按鈕時,在文本框中顯示文本
"hello,world"
(1) 查文檔,找到“按鈕被點擊”事件對應的信號
QPushButton => QAbstractButton
在其父類找到了一個signal
void clicked ( bool checked = false )

(2) 定義一個處理函數,參數類型應該和signal的參數
相同。


// 頭文件  test.h

#ifndef __AAA_H
#define __AAA_H

#include <QtWidgets/QMainWindow>
#include "ui_test41.h"

class test41 : public QMainWindow
{
    Q_OBJECT

public:
    test41(QWidget *parent = Q_NULLPTR);
    private slots:
    int OnShowClicked(bool checked);
private:
    Ui::test41Class ui;
};
#endif

// cpp文件  test.cpp

#include "test41.h"

test41::test41(QWidget *parent)
    : QMainWindow(parent)
{
    ui.setupUi(this);
    connect(
        ui.pushButton, // 對象a, 必須是一個QObject*類型   button 名
        SIGNAL(clicked(bool)), // a的信號
        this, // 對象b
        SLOT(OnShowClicked(bool)) // b的槽
        );
}
int test41::OnShowClicked(bool checked)
{
    ui.plainTextEdit->setPlainText("hello world");
    return 0;
}

pushButton顯示不可用時
打開ui_test.h 選擇 vassistx 中tools中 reparse  當前文件   重新解析一下  然後進行編譯運行

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章