• Python&C++相互混合调用编程全面实战-21依赖的QT环境安装和信号槽机制的讲解


    作者:虚坏叔叔
    博客:https://xuhss.com

    早餐店不会开到晚上,想吃的人早就来了!😄

    依赖的QT环境安装和信号槽机制的讲解

    在这里插入图片描述

    一、QT源码和SDK下载

    http://download.qt.io/archive 不可靠
    http://download.qt.io 注册下载
    
    • 1
    • 2

    QT有2种编程方式,一种是基于QtCreator,另一种是基于Visual Studio。如果你是在Linux或者Mac,可以直接使用QtCreator,如果是在Windows,推荐使用VS

    为什么不用QtCreator,相对于其他的开发集成环境而言,你在实际开发中用过QtCreator就会发现会觉得很好用,但是相对于vs而言就是个弟弟。比如项目基于Qmake,它经常有些编译没生成,会出现一些bug,相对而言vsbug少很多,而且vs调试和配置第三方库的时候,更加便捷。

    如果用vs的话,需要下载vs-addin:

    download.qt.io/archive/vsaddin/
    
    • 1

    qt的话建议下载5.9,它是长期维护版本:

    http://download.qt.io/archive/qt
    
    • 1

    二、QT环境安装

    双击安装5.11版本:

    在这里插入图片描述

    点击下一步后选择一个安装目录:

    在这里插入图片描述

    在vs下开发,勾选这MSVC:

    在这里插入图片描述

    Sources可以勾选也可以不勾选,勾选就是可以调试到QT的源码。

    后面就是一路默认安装。同意协议即可。

    三、QT安装内容介绍

    QT集成开发环境QTCreator在这个路径下:

    D:\Qt\Qt5.9.8\Tools\QtCreator
    
    • 1

    在这里插入图片描述

    SDK的路径在这个位置:

    D:\Qt\Qt5.9.8\5.9.8\msvc2015_64
    
    • 1

    在这里插入图片描述

    四、Vs-addin安装

    直接双击安装即可完成安装完成后,打开vs2015就可以看到这个菜单:

    点击QT Options

    在这里插入图片描述

    就可以设置:

    sdk设置为64位即可:

    在这里插入图片描述

    五、创建一个FirstQt项目

    使用Qt GUI Application 创建一个FirstQt项目

    在这里插入图片描述

    选择你需要使用的QT库,默认即可:

    在这里插入图片描述

    创建一个主窗口应用程序,默认即可

    在这里插入图片描述

    创建完成后,编译运行:

    可以看到创建了一个这样的窗口。

    在这里插入图片描述

    打开主函数入口:

    #include "FirstQT.h"
    #include <QtWidgets/QApplication>
    
    int main(int argc, char *argv[])
    {
    	QApplication a(argc, argv);// 整个应用程序
    	FirstQT w; // 窗口
    	w.show(); // 显示窗口
    	return a.exec(); // 消息队列处理
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    打开FirstQT.h

    #pragma once
    
    #include <QtWidgets/QMainWindow>
    #include "ui_FirstQT.h"
    
    class FirstQT : public QMainWindow // 继承QMainWindow主窗口
    {
    	Q_OBJECT
    
    public:
    	FirstQT(QWidget *parent = Q_NULLPTR);
    
    private:
    	Ui::FirstQTClass ui;
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    六、QT界面控件添加

    双击FirstQT.ui可以打开界面设计器。

    这里有很多控件,可以拖动一个按钮到主窗口,然后用信号槽给控件添加事件:

    在这里插入图片描述

    为按钮添加click的响应事件:

    在这里插入图片描述

    保存后,切换到visual studio 2015,运行程序,可以看到控件。

    在这里插入图片描述

    为什么在Qt设计师修改的界面,可以展现在visual studio 2015中呢?

    它会调用Uic程序 将FirstQt.ui编译生成moc_FirstQt.cpp文件。这个中间文件自动的生成了界面的代码.

    在这里插入图片描述

    七、QT信号槽实现控件事件的绑定

    来到FirstQt.h中添加槽函数Test()

    #pragma once
    
    #include <QtWidgets/QMainWindow>
    #include "ui_FirstQT.h"
    
    class FirstQT : public QMainWindow // 继承QMainWindow主窗口
    {
    	Q_OBJECT
    
    public:
    	FirstQT(QWidget *parent = Q_NULLPTR);
    
    public slots:
    	void Test();
    
    private:
    	Ui::FirstQTClass ui;
    };
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    FirstQt.cpp中添加实现:

    #include "FirstQT.h"
    #include <iostream>
    using namespace std;
    
    FirstQT::FirstQT(QWidget *parent)
    	: QMainWindow(parent)
    {
    	ui.setupUi(this);
    }
    
    void FirstQT::Test()
    {
    	cout << "FirstQt::Test()" << endl;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    修改为控制台输出方便演示:

    在这里插入图片描述

    运行:

    在这里插入图片描述

    💬 往期优质文章分享

    🚀 优质教程分享 🚀

    • 🎄如果感觉文章看完了不过瘾,可以来我的其他 专栏 看一下哦~
    • 🎄比如以下几个专栏:Python实战微信订餐小程序、Python量化交易实战、C++ QT实战类项目 和 算法学习专栏
    • 🎄可以学习更多的关于C++/Python的相关内容哦!直接点击下面颜色字体就可以跳转啦!
    学习路线指引(点击解锁)知识定位人群定位
    🧡 Python实战微信订餐小程序 🧡进阶级本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
    💛Python量化交易实战 💛入门级手把手带你打造一个易扩展、更安全、效率更高的量化交易系统
    ❤️ C++ QT结合FFmpeg实战开发视频播放器❤️难度偏高分享学习QT成品的视频播放器源码,需要有扎实的C++知识!
    💚 游戏爱好者九万人社区💚互助/吹水九万人游戏爱好者社区,聊天互助,白嫖奖品
    💙 Python零基础到入门 💙Python初学者针对没有经过系统学习的小伙伴,核心目的就是让我们能够快速学习Python的知识以达到入门

    🚀 资料白嫖,温馨提示 🚀

    关注下面卡片即刻获取更多编程知识,包括各种语言学习资料,上千套PPT模板和各种游戏源码素材等等资料。更多内容可自行查看哦!

    请添加图片描述

  • 相关阅读:
    性格正直的人适合什么职业?
    智慧社区(网页显示次数后端写法)
    第五章:Python中的集合(上)
    Tomcat学习
    自学成为一名黑客(自学笔记)
    Laravel artisan 常用命令
    Go 语言为什么不支持并发读写 map?
    Vue(二)——Vue核心第二弹(未完成)
    Redis 7 第八讲 集群模式(cluster)架构篇
    Stable Diffusion WebUI 使用
  • 原文地址:https://blog.csdn.net/huangbangqing12/article/details/125380146