精华内容
下载资源
问答
  • QT5实现简单的TCP通信

    万次阅读 多人点赞 2017-04-11 00:43:20
    这段时间用到了QT的TCP通信,做了初步的学习与尝试,编写了...1、客户端的代码比服务器稍简单,总的来说,使用QT中的QTcpSocket类与服务器进行通信只需要以下5步: (1)创建QTcpSocket套接字对象 socket = new Q...

    这段时间用到了QT的TCP通信,做了初步的学习与尝试,编写了一个客户端和服务器基于窗口通信的小例程。

    使用QT的网络套接字需要.pro文件中加入一句:

    QT       += network

    一、客户端

    1、客户端的代码比服务器稍简单,总的来说,使用QT中的QTcpSocket类与服务器进行通信只需要以下5步:

    (1)创建QTcpSocket套接字对象

    socket = new QTcpSocket();

    (2)使用这个对象连接服务器

    socket->connectToHost(IP, port);

    (3)使用write函数向服务器发送数据

    socket->write(data);

    (4)当socket接收缓冲区有新数据到来时,会发出readRead()信号,因此为该信号添加槽函数以读取数据

    QObject::connect(socket, &QTcpSocket::readyRead, this, &MainWindow::socket_Read_Data);
    
    void MainWindow::socket_Read_Data()
    {
        QByteArray buffer;
        //读取缓冲区数据
        buffer = socket->readAll();
    }

    (5)断开与服务器的连接(关于close()和disconnectFromHost()的区别,可以按F1看帮助)

    socket->disconnectFromHost();

    2、以下是客户端的例程

    首先是mainwindow.h文件:

    //mainwindow.h
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QTcpSocket>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private slots:
    
        void on_pushButton_Connect_clicked();
    
        void on_pushButton_Send_clicked();
    
        void socket_Read_Data();
    
        void socket_Disconnected();
    
    private:
        Ui::MainWindow *ui;
        QTcpSocket *socket;
    };
    
    #endif // MAINWINDOW_H
    

    然后是mainwindow.cpp文件:

    //mainwindow.cpp
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        socket = new QTcpSocket();
    
        //连接信号槽
        QObject::connect(socket, &QTcpSocket::readyRead, this, &MainWindow::socket_Read_Data);
        QObject::connect(socket, &QTcpSocket::disconnected, this, &MainWindow::socket_Disconnected);
    
        ui->pushButton_Send->setEnabled(false);
        ui->lineEdit_IP->setText("127.0.0.1");
        ui->lineEdit_Port->setText("8765");
    
    }
    
    MainWindow::~MainWindow()
    {
        delete this->socket;
        delete ui;
    }
    
    void MainWindow::on_pushButton_Connect_clicked()
    {
        if(ui->pushButton_Connect->text() == tr("连接"))
        {
            QString IP;
            int port;
    
            //获取IP地址
            IP = ui->lineEdit_IP->text();
            //获取端口号
            port = ui->lineEdit_Port->text().toInt();
    
            //取消已有的连接
            socket->abort();
            //连接服务器
            socket->connectToHost(IP, port);
    
            //等待连接成功
            if(!socket->waitForConnected(30000))
            {
                qDebug() << "Connection failed!";
                return;
            }
            qDebug() << "Connect successfully!";
    
            //发送按键使能
            ui->pushButton_Send->setEnabled(true);
            //修改按键文字
            ui->pushButton_Connect->setText("断开连接");
        }
        else
        {
            //断开连接
            socket->disconnectFromHost();
            //修改按键文字
            ui->pushButton_Connect->setText("连接");
            ui->pushButton_Send->setEnabled(false);
        }
    }
    
    void MainWindow::on_pushButton_Send_clicked()
    {
        qDebug() << "Send: " << ui->textEdit_Send->toPlainText();
         //获取文本框内容并以ASCII码形式发送
        socket->write(ui->textEdit_Send->toPlainText().toLatin1());
        socket->flush();
    }
    
    void MainWindow::socket_Read_Data()
    {
        QByteArray buffer;
        //读取缓冲区数据
        buffer = socket->readAll();
        if(!buffer.isEmpty())
        {
            QString str = ui->textEdit_Recv->toPlainText();
            str+=tr(buffer);
            //刷新显示
            ui->textEdit_Recv->setText(str);
        }
    }
    
    void MainWindow::socket_Disconnected()
    {
        //发送按键失能
        ui->pushButton_Send->setEnabled(false);
        //修改按键文字
        ui->pushButton_Connect->setText("连接");
        qDebug() << "Disconnected!";
    }

    最后是ui的设计:

    二、服务器

    1、服务器除了使用到了QTcpSocket类,还需要用到QTcpSever类。即便如此,也只是比客户端复杂一点点,用到了6个步骤:

    (1)创建QTcpSever对象

    server = new QTcpServer();

    (2)侦听一个端口,使得客户端可以使用这个端口访问服务器

    server->listen(QHostAddress::Any, port);

    (3)当服务器被客户端访问时,会发出newConnection()信号,因此为该信号添加槽函数,并用一个QTcpSocket对象接受客户端访问

    connect(server,&QTcpServer::newConnection,this,&MainWindow::server_New_Connect);
    
    void MainWindow::server_New_Connect()
    {
        //获取客户端连接
        socket = server->nextPendingConnection();
    }

    (4)使用socket的write函数向客户端发送数据

    socket->write(data);

    (5)当socket接收缓冲区有新数据到来时,会发出readRead()信号,因此为该信号添加槽函数以读取数据

    QObject::connect(socket, &QTcpSocket::readyRead, this, &MainWindow::socket_Read_Data);
    
    void MainWindow::socket_Read_Data()
    {
        QByteArray buffer;
        //读取缓冲区数据
        buffer = socket->readAll();
    }

    (6)取消侦听

    server->close();

    2、以下是服务器的例程

    首先是mainwindow.h文件:

    //mainwindow.h
    #ifndef MAINWINDOW_H
    #define MAINWINDOW_H
    
    #include <QMainWindow>
    #include <QTcpServer>
    #include <QTcpSocket>
    
    namespace Ui {
    class MainWindow;
    }
    
    class MainWindow : public QMainWindow
    {
        Q_OBJECT
    
    public:
        explicit MainWindow(QWidget *parent = 0);
        ~MainWindow();
    
    private slots:
        void on_pushButton_Listen_clicked();
    
        void on_pushButton_Send_clicked();
    
        void server_New_Connect();
    
        void socket_Read_Data();
    
        void socket_Disconnected();
    
    private:
        Ui::MainWindow *ui;
        QTcpServer* server;
        QTcpSocket* socket;
    };
    
    #endif // MAINWINDOW_H

    然后是mainwindow.cpp文件:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        ui->lineEdit_Port->setText("8765");
        ui->pushButton_Send->setEnabled(false);
    
        server = new QTcpServer();
    
        //连接信号槽
        connect(server,&QTcpServer::newConnection,this,&MainWindow::server_New_Connect);
    }
    
    MainWindow::~MainWindow()
    {
        server->close();
        server->deleteLater();
        delete ui;
    }
    
    void MainWindow::on_pushButton_Listen_clicked()
    {
        if(ui->pushButton_Listen->text() == tr("侦听"))
        {
            //从输入框获取端口号
            int port = ui->lineEdit_Port->text().toInt();
    
            //监听指定的端口
            if(!server->listen(QHostAddress::Any, port))
            {
                //若出错,则输出错误信息
                qDebug()<<server->errorString();
                return;
            }
            //修改按键文字
            ui->pushButton_Listen->setText("取消侦听");
            qDebug()<< "Listen succeessfully!";
        }
        else
        {
    /*
            //如果正在连接(点击侦听后立即取消侦听,若socket没有指定对象会有异常,应修正——2017.9.30)
            if(socket->state() == QAbstractSocket::ConnectedState)
            {
                //关闭连接
                socket->disconnectFromHost();
            }
    */
            socket->abort();
            //取消侦听
            server->close();
            //修改按键文字
            ui->pushButton_Listen->setText("侦听");
            //发送按键失能
            ui->pushButton_Send->setEnabled(false);
        }
    
    }
    
    void MainWindow::on_pushButton_Send_clicked()
    {
        qDebug() << "Send: " << ui->textEdit_Send->toPlainText();
        //获取文本框内容并以ASCII码形式发送
        socket->write(ui->textEdit_Send->toPlainText().toLatin1());
        socket->flush();
    }
    
    void MainWindow::server_New_Connect()
    {
        //获取客户端连接
        socket = server->nextPendingConnection();
        //连接QTcpSocket的信号槽,以读取新数据
        QObject::connect(socket, &QTcpSocket::readyRead, this, &MainWindow::socket_Read_Data);
        QObject::connect(socket, &QTcpSocket::disconnected, this, &MainWindow::socket_Disconnected);
        //发送按键使能
        ui->pushButton_Send->setEnabled(true);
    
        qDebug() << "A Client connect!";
    }
    
    void MainWindow::socket_Read_Data()
    {
        QByteArray buffer;
        //读取缓冲区数据
        buffer = socket->readAll();
        if(!buffer.isEmpty())
        {
            QString str = ui->textEdit_Recv->toPlainText();
            str+=tr(buffer);
            //刷新显示
            ui->textEdit_Recv->setText(str);
        }
    }
    
    void MainWindow::socket_Disconnected()
    {
        //发送按键失能
        ui->pushButton_Send->setEnabled(false);
        qDebug() << "Disconnected!";
    }

    最后是ui的设计:

    三、运行结果

    附上两个工程的下载链接:http://download.csdn.net/detail/u014695839/9810107

    以上是根据这几天学习总结出的基于QT5的TCP通信的简单实现,如有错误希望能指出,欢迎各位多多交流!

     

    展开全文
  • Qt5类继承关系图

    千次下载 热门讨论 2014-01-29 12:21:51
    Qt5类继承关系图,对于理清Qt5框架还有有点帮助的。pdf文档只有一面,缩放比例放小一点。
  • 最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。 首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑...

    最近,在学习QT5的过程中,想尝试着把自己写的工程程序给打包发布出来,在任何一台windows系统都能运行,这样就不会限于电脑需不需要安装QT安装包了。
    首先,先介绍自己使用的环境。我使用的QT版本是。我的电脑windows系统是win10专业版的。下面的打包教程,都是亲测可用的。但个人认为,即便是不同的windows操作系统,不同的QT版本,也应该是可以的。希望大家能及时反馈,我好及时更新。
    第二,介绍一下我所使用的打包工具。一个是QT5自带的windeployqt(这个大家不需要下载安装),另外一个是Engima Virtual Box,这是下载链接Engima Virtual Box,软件图标如下:
    这里写图片描述

    做好这些准备工作之后,操作步骤如下:
    <1>: 打开一个QT程序,以release方式运行一次。操作如下图:
    这里写图片描述
    这时你的工程项目文件夹下,会生成一个关于release的文件夹:
    这里写图片描述

    <2>:打开关于release相关的文件夹,找到该目录下release目录下的.exe程序。此时你点击是运行不成功的。因为缺少QT必要的库文件。将这个.exe文件拷贝出来,创建一个单独的文件夹,放在这个文件夹下。
    这里写图片描述

    <3>:在win10下,搜索QT,如下图:
    这里写图片描述
    打开红色标记的命令窗口 :
    这里写图片描述
    其实在QT目录下是可以找到这个目录的。

    接着输入命令行,cd /d 路径(指的是需要打包的exe程序目录,就是刚才拷贝出来的exe程序所在的目录),回车后:
    这里写图片描述
    输入如下命令行:windeployqt 程序名 敲击回车。这一步操作是将所需的库文件全都拷贝到exe程序的当前文件:
    这里写图片描述
    这时我们看程序目录如下:
    这里写图片描述
    此时,在当前目录下是可以点击运行exe程序的,说明库文件都已经拷贝到当前目录下了。现在只需要将这一堆文件进行打包。

    <4>打开运行Enigma Virtual Box:
    这里写图片描述
    按照上图的示意,添加路径和文件如下图。文件可以托选,选择所有文件后,直接拖入界面框内。注意是要所有文件和文件夹全部拖进。示意图如下:
    这里写图片描述
    在【Files Options】中可以选择是否将文件压缩:
    这里写图片描述
    然后点击Process开始打包。
    这里写图片描述

    打包完成后,我们的工作就完成了,去程序打包后的路径点击运行吧。

    展开全文
  • Qt5基本教程

    万次阅读 多人点赞 2017-01-09 10:22:17
    ...据说非常适合qt5入门学习,最近正在参考,转载希望更多人看到,也为自己以后找到本资料提供方便。 Qt 学习之路 2》目录 序Qt 前言Hello, world!信号槽自定义信号槽Qt

    原地址:http://www.devbean.NET/2012/08/qt-study-road-2-catelog/


    本教程以qt5为主,部分地方会涉及qt4。据说非常适合qt5入门学习,最近正在参考,转载希望更多人看到,也为自己以后找到本资料提供方便。


    Qt 学习之路 2》目录

    1. Qt 前言
    2. Hello, world!
    3. 信号槽
    4. 自定义信号槽
    5. Qt 模块简介
    6. MainWindow 简介
    7. 添加动作
    8. 资源文件
    9. 对象模型
    10. 布局管理器
    11. 菜单栏、工具栏和状态栏
    12. 对话框简介
    13. 对话框数据传递
    14. 标准对话框 QMessageBox
    15. 深入 Qt5 信号槽新语法
    16. 文件对话框
    17. 事件
    18. 事件的接受与忽略
    19. event()
    20. 事件过滤器
    21. 事件总结
    22. 自定义事件
    23. Qt 绘制系统简介
    24. 画刷和画笔
    25. 反走样
    26. 渐变
    27. 坐标系统
    28. 绘制设备
    29. Graphics View Framework
    30. 贪吃蛇游戏(1)
    31. 贪吃蛇游戏(2)
    32. 贪吃蛇游戏(3)
    33. 贪吃蛇游戏(4)
    34. 文件
    35. 二进制文件读写
    36. 文本文件读写
    37. 存储容器
    38. 遍历容器
    39. 隐式数据共享
    40. model/view 架构
    41. QListWidget、QTreeWidget 和 QTableWidget
    42. QStringListModel
    43. QFileSystemModel
    44. 模型
    45. 视图和委托
    46. 视图选择
    47. QSortFilterProxyModel
    48. 自定义只读模型
    49. 自定义可编辑模型
    50. 布尔表达式树模型
    51. 使用拖放
    52. 自定义拖放数据
    53. 剪贴板
    54. 数据库操作
    55. 使用模型操作数据库
    56. 可视化显示数据库数据
    57. 编辑数据库外键
    58. 使用流处理 XML
    59. 使用 DOM 处理 XML
    60. 使用 SAX 处理 XML
    61. 保存 XML
    62. 使用 QJson 处理 JSON
    63. 使用 QJsonDocument 处理 JSON
    64. 访问网络(1)
    65. 访问网络(2)
    66. 访问网络(3)
    67. 访问网络(4)
    68. 进程
    69. 进程间通信
    70. 线程简介
    71. 线程和事件循环
    72. Qt 线程相关类
    73. 线程和 QObject
    74. 线程总结
    75. QML 和 QtQuick 2
    76. QML 语法
    77. QML 基本元素
    78. QML 组件
    展开全文
  • linux下安装qt5和卸载qt5

    千次阅读 2018-11-11 20:06:13
    环境 :1系统:ubuntu...一安装qt5 1下载qt安装包 官网.qt5.8链接:https://www.qt.io/download-open-source/?hsCtaTracking=f977210e-de67-475f-a32b-65cec207fd03|d62710cd-e1db-46aa-8d4d-2f1c1ffdacea qt官方...

    环境 :1系统:ubuntu16.04 X86 2qt版本:qt5.8

    一安装qt5

    1下载qt安装包

    官网.qt5.8链接:https://www.qt.io/download-open-source/?hsCtaTracking=f977210e-de67-475f-a32b-65cec207fd03|d62710cd-e1db-46aa-8d4d-2f1c1ffdacea

    qt官方发布各版本下载链接:http://download.qt.io

    其中/official_releases为官方发布离线版

    在线安装版:https://www.qt.io/download-open-source/

    我下的是:Qt Online Installer for Linux 32-bit (33 MB)

    该文件的后缀为.run,若下载的文件为.run则进入第2步 ,

    2 安装run文件:

    ①打开控制台 快捷键 ctrl+alt+t

    ②使用cd命令进入到安装文件的目录

    ③给run文件获取执行权限 : sudo chmod -x ./qt-unified-linux-x86-2.0.5-online.run

    输入密码 回车;(若 不行试着将 -x 改为777 即:sudo chmod 777 ./qt-unified-linux-x86-2.0.5-online.run)

    ④执行run: ./qt-unified-linux-x86-2.0.5-online.run

    弹出安装界面

    ⑤根据向导一步一步选择所需配置

    二卸载qt5

    1找到qt的安装目录

    2运行目录下的MaintenanceTool

    3在显示的窗口中选择删除 再点击skip

    若不知到安装目录,可以直接在计算机里搜索 MaintenanceTool,再运行它即可。

    展开全文
  • Qt5 on Wayland

    千次阅读 2020-07-09 01:17:11
    简 述: 翻译一篇关于和 wayland 有关的技术文章, 其英文标题为 Qt 5 on Wayland. Qt 5工具箱中的Wayland支持在Qt Platform Abstraction(QPA) Wayland插件中进行。构建和使用QtWayland的最低要求是Wayland(和...
  • Qt5简介及Qt5基本框架

    万次阅读 2015-11-02 22:14:36
    使用Qt5.x版本中的不同方面来开发应用程序,着重于新的Qt Quick的技术,提供了编写C++后端的必要内容,并扩展了QtQuick。  本章提供了关于Qt5高层次的概述。它对开发者有效的展示了不同的应用模式并且使用Qt5对...
  • Qt5和Qt4的区别

    千次阅读 2019-12-31 11:42:02
    1、Qt5使用了基于 OpenGL 的场景绘画来加速 qml 加强了绘画效应和粒子系统 2、原来的 QWebView 更新为 QWebEngineView 全新的 QWebEngineView 使用的是 Chromium 引擎,通过使用 Qt WebChannel 通道来桥接 Qt 和 ...
  • QT5框架

    千次阅读 2017-04-13 10:51:51
    Qt5安装 1qt5中中文输入qt55版本之后这个方法就无效了 Qt5框架 1Qt的跨平台性LinuxUnixMac OSAndroidiOS 2Qt模块 3qt qml和qt quick框架 QML语言 1qml中基本元素 11 基本可视化项 12基本的交互项事件处理 ...
  • Qt5WebChannel

    千次阅读 2017-12-11 17:56:21
    使用Qt5WebChannel'时记得添加链接库 Qt5WebChannel.lib
  • QT5 串口 收发 实例

    千次下载 热门讨论 2013-10-28 08:35:31
    这个小程序是自己用QT5开发的调试串口用的 在xp下收发正常 收发用的是一个独立线程
  • qt4 向 qt5 迁移

    千次阅读 2015-06-01 17:36:11
    qt5比qt4有了一些进步,而且从qt4向qt5迁移难度不大,具体详见 http://doc.qt.io/qt-5/qt5-intro.html 。总之,早点学习有好处。...qt5 中常用的module大致有Qt5Core, Qt5DBus, Qt5Gui, QtWidgets, Qt5
  • QT5 与QT 4 QT3 区别

    千次阅读 2018-07-04 10:50:22
    QT5中显示窗口 没必要再setmainwidget了,直接删掉,直接show出你的窗口就行了:QApplication a(argc, argv);QPushButton hello( "Hello world!", 0 );hello.resize( 100, 30 );//a.setMainWidget( &...
  • Qt5学习笔记1》安装Qt5并配置环境变量

    万次阅读 多人点赞 2016-11-25 14:07:36
    刚刚开始学习Qt5,网上资料太少太少,那个什么Qt开源社区的Qt入门教程也要收费,只好自己谷歌百度了,为了造福后来的同学,我觉得把学习Qt过程中的一些经验都写在这里。   一、Qt的安装 我使用的是目前最新的...
  • 需求 qt5项目迁移到qt4项目,设置Qt::FramelessWindowHint,窗口外框会出来。qt5代码正常效果截图(使用了自定义的标题栏)自定义标题栏参照:《Qt实用技巧:自定义标题栏》使用qt4.7.4编译运行效果修改代码解决...
  • Qt5+安装包制作(Qt Installer Framework)》

    万次阅读 多人点赞 2018-11-07 15:52:56
    Qt5可以使用官方的Qt Installer Framework框架制作安装包 Qt Installer Framework框架提供了一组工具和实用程序,用于创建一次安装程序,并在所有受支持的桌面Qt平台上部署它们,而无需重写源代码。安装程序将在...
  • C++实战OpenCV3.2+QT5播放视频

    千人学习 2019-02-22 20:56:28
    OpenCV是目前视频处理的最流行的框架,广泛用于各类项目中,并且由于OpenCV的开源特性可以很容易移植到Android、IOS和嵌入式Linux中,QT5同样是跨平台界面库的第一选择。 本次公开课将基于OpenCV3.2和QT5,详细讲解...
  • Qt5实战之Qt Platform Abstraction

    千次阅读 2017-12-28 20:06:34
    Qt5实战之Qt Platform AbstractionQPA (Qt Platform Abstraction) 即Qt平台抽象层,移植自Qt4,在Qt5中替代QWS(Qt Window System) QPA插件通过子类化不同的QPlatform*类来实现。QPA中有两个基类:...
  • Qt5使用串口

    万次阅读 2018-10-26 16:18:52
    Qt5使用串口 版本说明 版本 作者 日期 备注 0.1 loon 2018.10.26 初稿 目录 文章目录Qt5使用串口版本说明目录一、需求和目的二、学习使用Qt5的serial port相关类1、注意事项2、使用说明(1)、使用前提...
  • python QT5 安装

    千次阅读 2019-12-31 09:38:09
    python qt5 官方网址:https://www.riverbankcomputing.com/static/Docs/PyQt5/ QT5 官方下载网址:http://download.qt.io/archive/qt/5.12/5.12.0/ Python qt模块安装命令: pip in...
  • 成功在VS2012上配置Qt5后,小叶开始了一段新的征程。 犹记前几日看Introducing Qt 5.0这篇文章时,俺对Compatibility一项的理解是Qt5几乎完全向下兼容Qt4.x: Qt Creator, being the biggest application ...
  • Qt4与Qt5的区别

    万次阅读 2017-07-15 15:37:08
    把项目所需要的main.cpp加入项目中来,...注意:不知道你用的是Qt4还是Qt5,如果是5的话,在gotocell.pro文件中要加入QT += widgets这一行。项目才能编译。 Qt4写的程序如果要在Qt5中运行,需要在Pro文件中加入Qt
  • Qt5】关于Qt5对xp的兼容说明

    千次阅读 2018-01-28 12:46:56
    首先是编译器,Qt5可以使用msvc编译器和mingw编译器,而msvc的编译器从2015开始就对xp的支持变差,就算通过各种编译配置命令设置,能xp下运行,但是会很可能发生一些奇奇怪怪的bug。而mingw编译器没有这个问题,同一...
  • Qt4与Qt5的三个区别

    千次阅读 2019-07-28 22:21:57
    在Qt4中,Qt提供的全部图形界面相关类都包含在Qt Gui模块中,但QT5将一些图形界面类移到了QT widgets模块中。所以在Pro文件中,需要增加一句话: greaterThan(QT_MAJOR_VERSION, 4):QT += widgets 意思是如果Qt...
  • 上半部分是qt5 下半部分是qt4 ———————————————————————————————————————————— 前提:搜狗或则其它中文输入法安装和使用成功 1、安装 fcitx-frontend-qt5 sudo apt...
  • 【Qt开发】QT4 升级到 QT5 改动

    千次阅读 2016-11-21 17:12:53
    QT4 升级到 QT5 改动: PC部分: 【改 QTDIR 变量】 在工程根目录下找到 .user 文件 , 如 InnoTabPlugin.vcxproj.user 修改指向你的 QT5 根目录:    C:\qt\Qt5.2.1\5.2.1\msvc2010 ...
  • QT4往QT5转换

    千次阅读 2015-02-05 19:50:13
    官方参考:http://qt-project.org/wiki/Transition_from_Qt_4.x_to_Qt5 1.参考:http://blog.chinaunix.net/uid-693168-id-3462995.html ...在pro文件中添加webkit模块时 ...Qt5: Qt+= webkit we
  • qt5搭建libcurl环境

    千次阅读 2018-06-30 14:39:09
    1.安装QT5的注意事项安装qt5说起来非常简单,但是经常出错,有时候是装上之后运行QT creator的时候出现错误。下面介绍一个我测试过没有问题的安装方法: 首先是qt5建议安装qt5.5.0等公认的稳定性比较好的版本,不要...
  • tag , 便签,广告: qt单元测试用法,qt测试例子,qt单元测试demo,qt单元测试简单例子,qt单元测试例程,qt单元测试简单例子, qt5单元测试例子,qt5单元测试代码,qt5单元测试工程例子,测试运行ok。 1. 建立工程...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,639
精华内容 20,255
关键字:

qt5