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  当前文件   重新解析一下  然后进行编译运行

 

 

 

 

 

 

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