QT

刘邦
• 阅读 2410
老师说有项目需要用到QT,看了Qt教程,对QT进行了简单的了解

Qt是什么

Qt是一个跨平台的C++图形用户界面应用程序开发框架。广泛用于开发GUI程序,这种情况下又被称为部件工具箱。也可用于开发非GUI程序,比如控制台工具和服务器。

QT环境

搭建环境 QT的 Hello World
#include <QApplication>
#include <QWidget> //窗口的控件
#include<QPushButton>
#include<QLabel>

int main (int argc, char **argv){
    QApplication app(argc, argv);

    //窗口
    QWidget W;
    W.setWindowTitle(QString("我是标题"));

    QLabel *label = new QLabel(&W);
    label->setText("Hello World");

    //按钮
    QPushButton B;
    B.setText("我是按钮");
    B.setParent(&W);
    B.move(100,100);

    W.show();

    return app.exec();
}

界面:

QT

在这里的“ · ”和“ -> "用法是一样的

图形用户界面

Qt的图形用户界面的基础是QWidget。QWidget不是一个抽象类别。Qt中所有类型的GUI组件如按钮、标签、工具栏等都派生自QWidget,而QWidget本身则为QObject的子类。Widget负责接收鼠标,键盘和来自窗口系统的其他事件,并描绘了自身显示在屏幕上。每一个GUI组件都是一个widget,widget还可以作为容器,在其内包含其他Widget。

布局

布局管理类别用于描述一个应用程序的用户界面中的Widget是如何放置。当视窗缩放时,布局管理器会自动调整widget的大小、位置或是字号,确保他们相对的排列和用户界面整体仍然保有可用性。

QT有内置的布局管理类型:

QT

学习了布局简单的完成了界面:

QT

信号和槽

Qt利用信号与槽(signals/slots)机制取代传统的callback来进行对象之间的沟通。当操作事件发生的时候,对象会发提交一个信号(signal);而槽(slot)则是一个函数接受特定信号并且运行槽本身设置的动作。信号与槽之间,则透过QObject的静态方法connect来链接。

信号在任何运行点上皆可发射,甚至可以在槽里再发射另一个信号,信号与槽的链接不限定为一对一的链接,一个信号可以链接到多个槽或多个信号链接到同一个槽,甚至信号也可连接到信号。

以往的callback缺乏类型安全,在调用处理函数时,无法确定是传递正确类型的参数。但信号和其接受的槽之间传递的数据类型必须要相匹配,否则编译器会提出警告。信号和槽可接受任何数量、任何类型的参数,所以信号与槽机制是完全类型安全。

信号与槽机制也确保了低耦合性,发送信号的类别并不知道是哪个槽会接受,也就是说一个信号可以调用所有可用的槽。此机制会确保当在"连接"信号和槽时,槽会接受信号的参数并且正确运行。

说白了,把信号和槽可以比喻为短信, 一条短信可以发给多个人,一个人也可以接受多条短信

利用信号和槽实现窗口跳转

QT

实现代码:

QT

QT中Lambda表达式实现信号和槽

Lambda表达式,不用定义槽函数,不用指定信号接收者;需要在头文件中添加 CONFIG += C++11

QT

QT

最终实现代码,效果和上面完全一致

QT

= : 把外部所有局部变量,类中所有成员函数以值传递方式

总结

QT可视化编程,不那么抽象,但是QT编译器有点“坑”,反应慢的不行
点赞
收藏
评论区
推荐文章
Karen110 Karen110
4年前
一文带你读懂PyQt:用Python做出与C++一样的GUI界面应用程序
\一、简介Python标准库更多的适合处理后台任务,唯一的图形库tkinter使用起来很不方便,所以后来出现了针对Python图形界面开发的扩展库,今天老猿要介绍的是主流Python图形界面扩展库之一的PyQt。在介绍PyQt之前,必须先简单介绍一下Qt。Qt是一个C可视化开发平台,是一个跨平台的C图形用户界面应用程序框架(CGUI)
Stella981 Stella981
3年前
Clion+Cmake+Qt5+Qwt+msys2+MinGW在Windows下的安装配置使用教程
摘要:CLion,acrossplatformC/CIDE.本文主要介绍基于Clion作为IDE,MinGW作为编译器,CMake作为项目构建工具,开发基于Qt5、qwt的C图形GUI项目的安装、配置、编译过程。KeyWords:Clion;Cmake;Qt5;Qwt;msys2;MinGW;Windows目
Stella981 Stella981
3年前
Qt的由来和发展
一、Qt是什么  1、Qt是一个1991年由奇趣科技开发的跨平台C图形用户界面应用程序开发框架。它既可以开发GUI程序,也可用于开发非GUI程序,比如控制台工具和服务器。  2、Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(MetaObjectCompiler,moc))以及一些宏,易于扩展,允许组件编程。  3
Stella981 Stella981
3年前
Nokia Qt SDK的开发环境的搭建
Qt是一个跨平台的C图形用户界面应用程序框架。它提供给应用程序开发者建立艺术级的图形用户界面所需的所用功能。QT完全面向对象的,很容易扩展,并且允许正确的组建编程。Qt软件开发工具包(QtSDK)全新的Qt软件开发工具包,可从http://forum.nokia.com(https://www.oschina.n